第三题上个自认为最优的代码吧 #include<bits/stdc++.h> using namespace std; int main() { int n, cnt = 0; string s; cin >> n >> s; s = " " + s; vector<vector<int>> g(n + 1); vector<pair<int, int>> samePairs; vector<int> differentNeightbors(n + 1, 0); for (int i = 0; i < n - 1; ++i) { int a, b; cin >> a >> b; g[a].push_back(b); g[b].push_back(a); if (s[a] == s[b]) samePairs.emplace_back(a, b); else { differentNeightbors[a]++; differentNeightbors[b]++; } } for (auto &;[a, b]: samePairs) { cnt += differentNeightbors[a] + differentNeightbors[b]; } cout << cnt; return 0; }
点赞 评论

相关推荐

ResourceUtilization:四六级不愧是大学最有用的证之一
点赞 评论 收藏
分享
牛客网
牛客企业服务