恭喜发现宝藏!搜索公众号【TechGuide】回复公司名,解锁更多新鲜好文和互联网大厂的笔经面经。 作者@TechGuide【全网同名】 点赞再看,养成习惯,您动动手指对原创作者意义非凡🤝
第一题:树结点染色计算总体权重 题目:给你一棵树,树上每个节点要么是红色要么是黑色,根节点为1。每个节点的权重值为根节点到该节点路径上红色节点个数和蓝色节点个数的差的绝对值。求所有节点权重值之和。
输入第一行输入n个节点 第二行为每个节点的颜色 接下来n-1行为a b节点之间有一条线
5 RBBRB 1 5 2 5 1 3 5 4
输出3
思路:建树,dfs模拟
代码 CPP版本// Java题解可私信微信公众号TechGuide回复公司名获取
#include
#include
using namespace std;
typedef long long ll;
const int N = 1e5 + 5;
vector mp[N];
int cred[N], cblue[N], n;
string color;
ll ans;
void dfs(int u,int fa){
cred[u] = cred[fa];
cblue[u] = cblue[fa];
if(color[u] == 'R'){
cred[u]++;
}else{
cblue[u]++;
}
// cout> in;
if(pname.find(in) == pname.end()){
cout
关注
打赏