[2020.12.4周五] 圆上对称博弈

[2020.12.4周五] 圆上对称博弈

1451D - Circle Game

题解:注意到后手总可以使点走在(k,k)上,所以如果(k,k)是必胜态,则后手胜;否则先手总可以使(n*k+k,k)上,如果这是必胜态则先手赢

tag:对称博弈

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=5e5+100; 
int main()
{
    int T;cin>>T;
    while(T--)
    {
         ll r,k;ll sum=0;
        cin>>r>>k;
        while((sum+k)*(sum+k)*2<=r*r)
        {
            sum+=k;
        }
        if((sum+k)*(sum+k)+sum*sum<=r*r) cout<<"Ashish"<<endl;
        else cout<<"Utkarsh"<<endl;
        
    }
}

posted @ 2020-12-05 00:46  zx0710  阅读(57)  评论(0编辑  收藏  举报