关注
#include <bits/stdc++.h>
using namespace std;
struct Node {
int r, g, b;
Node() {
r = g = b = 0;
}
};
unordered_map<long long, Node>mp;
string s;
vector<vector<int>>G;
Node a;
Node dfs(int start, int except_) {
long long mps = (long long)start * 100000 + except_;
if(mp.count(mps)) return mp[mps];
Node ans;
if(s[start] == 'r') ans.r++;
else if(s[start] == 'g')ans.g++;
else ans.b++;
for(auto &;i : G[start]) {
if(i == except_) continue;
auto res = dfs(i, start);
ans.r += res.r;
ans.g += res.g;
ans.b += res.b;
}
mp[mps] = ans;
auto temp = ans;
temp.r = a.r - ans.r;
temp.g = a.g - ans.g;
temp.b = a.b - ans.b;
mp[(long long)except_ * 100000 + start] = temp;
return ans;
}
int main() {
int n;
cin >> n;
cin >> s;
G = vector<vector<int>>(n);
for(int i = 0, u, v; i < n - 1; i++) {
cin >> u >> v;
G[u - 1].push_back(v - 1);
G[v - 1].push_back(u - 1);
}
for(int i = 0; i < n; i++) {
if(s[i] == 'r') a.r++;
else if(s[i] == 'g') a.g++;
else a.b++;
}
int ans = 0;
unordered_map<long long, bool>vis;
for(int i = 0; i < n; i++) {
for(auto &;j : G[i]) {
if(vis.count((long long)i * 100000 + j)) continue;
auto res = dfs(j, i);
if(res.r > 0 &;&; res.g > 0 &;&; res.b > 0) {
res.r = a.r - res.r;
res.g = a.g - res.g;
res.b = a.b - res.b;
if(res.r > 0 &;&; res.g > 0 &;&; res.b > 0) ans++;
}
vis[(long long)i * 100000 + j] = vis[(long long)j * 100000 + i] = true;
}
}
cout << ans << endl;
return 0;
}
查看原帖
1 1
相关推荐
点赞 评论 收藏
分享
01-10 00:14
东华大学 后端工程师 点赞 评论 收藏
分享
01-16 22:31
赣南师范大学 运营
白火同学:1、简历可以浓缩成一页,简历简历先要“简”方便HR快速过滤出有效信息,再要“历”用有效信息突出个人的含金量。
2、教育背景少了入学时间~毕业时间,HR判断不出你是否为应届生。
3、如果你的平台账号效果还不错,可以把账号超链接或者用户名贴到对应位置,一是方便HR知道你是具体做了什么内容的运营,看到账号一目了然,二是口说无凭,账号为证,这更有说服力。 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 春招什么时候投? #
9398次浏览 159人参与
# 今年秋招你收到了多少封邮件? #
37272次浏览 273人参与
# 春节前,你还在投简历吗? #
12809次浏览 148人参与
# 牛友的春节生活 #
6308次浏览 138人参与
# 牛客AI体验站 #
14535次浏览 266人参与
# 春节提前走,你用什么理由请假? #
9017次浏览 215人参与
# 从夯到拉,锐评职场mentor #
4295次浏览 64人参与
# 备战春招/暑实,现在应该做什么? #
4156次浏览 138人参与
# 实习到现在,你最困惑的一个问题 #
3968次浏览 116人参与
# 距离春招还有一个月,你现在是什么开局? #
6001次浏览 107人参与
# AI“智障”时刻 #
25832次浏览 128人参与
# 聊聊Agent开发 #
23182次浏览 570人参与
# 机械人的offer怎么选 #
250279次浏览 1186人参与
# 暑期实习什么时候投? #
6400次浏览 153人参与
# 推荐一个值得做的AI项目 #
6262次浏览 168人参与
# 投格力的你,拿到offer了吗? #
171465次浏览 875人参与
# 非技术2024笔面经 #
465925次浏览 4940人参与
# 实习生应该准时下班吗 #
335676次浏览 1737人参与
# 通信硬件薪资爆料 #
1226349次浏览 7207人参与
# 大家实习每天都在干啥 #
121663次浏览 633人参与
查看10道真题和解析