「Cfz Round 3」Battle

· · 题解

数学

一般地,对于任意 n,p \in \mathbb{Z} ^+(n-n \bmod p) \bmod p=0

也就是说,**会使 $n$ 的值减小的操作只可能是对 $n$ 进行的第一次操作**。 同理,**会使 $m$ 的值减小的操作只可能是对 $m$ 进行的第一次操作**。 按顺序模拟两人的第一次操作,若一位玩家持有的数字变为 $0$ 则另一位玩家获胜。 如果一轮操作后游戏没有结束,由于 $n,m$ 的值不会再次改变,游戏永远无法结束。 单次询问时间复杂度 $O(1)$。 ```cpp #include<bits/stdc++.h> using namespace std; int n,m,mod; void solution(){ scanf("%d%d%d",&n,&m,&mod); m-=m%mod; if(m==0) return puts("Alice"),void(); n-=n%mod; if(n==0) return puts("Bob"),void(); puts("Lasting Battle"); } int T; int main(){ scanf("%d",&T); while(T--) solution(); return 0; } ```