「Cfz Round 3」Battle
ScaredQiu
·
·
题解
数学
一般地,对于任意 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;
}
```