【代码】洛谷 P6150 [USACO20FEB] Clock Tree S [思维]
P6150 [USACO20FEB] Clock Tree S - 洛谷 (luogu.com.cn)
场上差一点就做出来了,没建双向边。。。。。
这个故逝告诉我们比赛万万不能急眼。
#include<bits/stdc++.h>
using namespace std;const int N = 2510;
int d[N];
vector<int> G[N];void dfs(int x, int fa) {d[x] ++;for (int y : G[x]) if (y != fa) {dfs(y, x);d[x] ++;d[x] = (d[x] + (12 - d[y])) % 12;d[y] = 12;}
}int main () {ios::sync_with_stdio(false);cin.tie(0);int n;cin >> n;for (int i = 1; i <= n; i ++) {cin >> d[i];}for (int i = 1; i < n; i ++) {int x, y;cin >> x >> y;G[x].push_back(y);G[y].push_back(x);}int sum = 0;for (int i = 1; i <= n; i ++) {d[i] = (d[i] - 1 + 12) % 12;dfs(i, 0);if (d[i] == 0 || d[i] == 1) {sum ++;}}cout << sum << "\n";return 0;
}