如果有人想要贪心,写了类似这样的check:
bool check(int x, int u, int fa, int y){
int can = x + y;
for(int v:g[u]){
if(v == fa) continue;
can--;
}
if(can < 0) return false;
for(int v:g[u]){
if(v == fa) continue;
if(!check(x, v, u, can)) return false;
}
return true;
}
是错的
hack:
10
1 2
2 3
2 4
3 5
3 6
3 7
4 8
4 9
4 10
你无法兼顾左右两颗子树,只能赌他走哪里