CF1747C Swap Game
观察
根据手玩样例可以发现睡先造出来0对方谁就失败. 同样也可以想到在一棵树上进行操作, 从节点出发, 转移看的是当前是谁在执掌. 自底向上的判定, 同样可以证明出来只有\(a[0]\leq\min\{a[1]..a[n]\}\)的情况是Bob, 否则就是Alice.
Code
int a[MAXN];
void solve(){
int n; cin>>n;
F(i, 1, n) cin>>a[i];
if(*min_element(a+2, a+n+1)>=a[1]) cout<<"Bob\n";
else cout<<"Alice\n";
}