第三题上个自认为最优的代码吧 #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; }