P8887 [DMOI-R1] 柯基棋 题解

· · 题解

题目传送门 || 更好的阅读体验 || 更新日志

思路

以下用黑棋代表小 A 下的“柯基”,用白棋代表小 B 下的“柯基”。黑棋先手。

通过探索,我们可以发现以下规律:

x_i 的生成器中的 x[i]=x[i-1]+((xor_shift(seed)%(unsigned long long)(2*2)+1))*2; 可知 x_i 为偶数,即小 C 捣乱时先后手的顺序不变。

由于捣乱时,棋盘的中心和中心线、棋盘边长的奇偶性、先后手顺序都不变,所以捣乱前和捣乱后赢家是不变的。

综上所述,

代码

#include<bits/stdc++.h>
using namespace std;

int main(){
    int T;
    cin>>T;
    while(T--){
        int n,q,seed;
        cin>>n>>q>>seed;
        if(n%2) cout<<"A won";
        else cout<<"B won";
        cout<<"\n";
    }   
    return 0;
}

提示: