CF1451D Circle Game(博弈)
Posted issue是fw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CF1451D Circle Game(博弈)相关的知识,希望对你有一定的参考价值。
考虑后手总是走相反的操作
先手往右走后手就往上走,先手往上走后手就往右走,这样后手走完后落点一定在 y = k x y=kx y=kx上
先手走完落点一定在 y = k x + k y=kx+k y=kx+k或 y = k x − k y=kx-k y=kx−k上
按照这个策略设一共能走 s s s轮,则有
2 s 2 k 2 < = d 2 2s^2k^2<=d^2 2s2k2<=d2
在这之后如果先手不能走,那么后手必胜.
如果能走,则后手没办法取胜
因为先手第一次往上走一步,之后的每一步都和后手做相反的操作,最后一定是后手不能走
#include <bits/stdc++.h>
using namespace std;
const int maxn = 3e5+10;
#define int long long
int t,d,k;
signed main()
{
cin >> t;
while( t-- )
{
cin >> d >> k;
int s = sqrt( d*d/2 );
s = s/k*k;
if( s*s+(s+k)*(s+k)<=d*d ) cout << "Ashish\\n";
else cout << "Utkarsh\\n";
}
return 0;
}
以上是关于CF1451D Circle Game(博弈)的主要内容,如果未能解决你的问题,请参考以下文章
CF 666 (Div. 2) D. Stoned Game博弈论