wa了第11个点求调TAT
查看原帖
wa了第11个点求调TAT
1120318
SacrEllfarch楼主2024/5/8 20:35
#include<iostream>
using namespace std;
short thx[10007][10007],p;    //mod定为全局变量
void duel(int x, int y){
    if(thx[x][y]){              //判断该局势是否已经搜索过(循环)或已经决出胜负;直接输出
        if(thx[x][y]==1){cout << "1" << endl; return;}
        else if(thx[x][y]==2){cout << "2" << endl; return;}
        else if(thx[x][y]==-1){cout << "error" << endl; return;}
    }
    else{
        thx[x][y] = -1;         //否则标记改点(记忆化)
        x=(x+y)%p;
        y=(x+y)%p;              //以两轮为一个周期,一个周期结束
        if(!x||!y){             //如果已经有人拥有的数为0,x赢该状态为1,反之为2
            if(x==0) thx[x][y] = 1;
            else if(y==0) thx[x][y] = 2;
        }
        duel(x,y);               //继续
    }
}
int main()
{
    int n;
    int a,b;
    cin >> n >> p;
    for(int i=0;i<n;i++){
        cin >> a >> b;
        duel(a,b);
    }
}
2024/5/8 20:35
加载中...