全部评论
就是一个简单的bfs遍历
有第二题是v2v 和千杰的同学吗?被恶心坏了
感觉有问题,它题目说允许多解,我测试出的答案模拟一下是对的,但是和实例答案不一样就过不了😂
那个什么维尔跟千结打架的,有无大佬分享下思路,模拟到吐,也没过
大佬攻击怎么做的呢
投云游戏后台 限制c/c++ 太艹了
从任意一个叶子节点开始层次遍历,每一层循环赋予颜色'R&(30317)#39;, 'G', 'B&(30319)#39;
你是什么岗位啊,我没这题
我的编程是三道数学题..
贪心,深度优先遍历直接A
我暴力建邻接表做的,但是只能过95%。。。剩下5%越界了。。。就算了
垃圾牛客,题目说符合题意就能过,实际必须和示例一样,rgb换个顺序原样输出都不行
除了根需要两个孩子颜色不同【1号节点只有一个孩子就换根】,其他按层都是RGB RGB循环。就你/父亲/孩子不是一个颜色就行。
回合怎么计算? 是两个英雄单独计算自己的回合,还是算总回合? 休息的那一轮算回合吗? 无视回合是什么意思?
我的第二题米小游跳石子,第二题米小游拿到一个树。第一题记不得了🤣
大概知道怎么解了,唉,又g了米忽悠,感谢各位大佬不吝赐教
和大疆的真是两个极端
#include<iostream>
(30316)#include<cstdio>
#include<vector>
(30320)#include<cstring>
using namespace std;
const int maxn = 1e5+10;
vector<int> vec[maxn];
int ans[maxn];
char s[] = "RGB";
void dfs(int f, int root,int now, int _now, int nx){
ans[root] = now;
for(int i = 0; i < vec[root].size(); i++){
if(vec[root][i] == f) continue;
dfs(root, vec[root][i], nx, now, _now);
}
}
int main(){
memset(ans, 0, sizeof(ans));
int n;
cin >> n;
for(int i = 1; i < n; i++){
int u, v;
cin >> u >> v;
vec[u].push_back(v);
vec[v].push_back(u);
}
ans[1] = 0;
for(int j = 0;j < vec[1].size(); j++){
if(j & 1) dfs(1, vec[1][j], 1, 0, 2);
else dfs(1, vec[1][j], 2, 0, 1);
}
for(int i = 1; i <= n; i++){
cout << s[ans[i]];
}
cout << endl;
return 0;
}
dfs染色三行就行
有人记了RGB题干了吗?求分享
相关推荐