CF1451D Circle Game(博弈)

Posted issue是fw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CF1451D Circle Game(博弈)相关的知识,希望对你有一定的参考价值。

LINK

考虑后手总是走相反的操作

先手往右走后手就往上走,先手往上走后手就往右走,这样后手走完后落点一定在 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=kxk

按照这个策略设一共能走 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 1215 D Ticket Game (博弈)

贪心/博弈CF1363C Game On Leave

贪心/博弈CF1363C Game On Leave

CF 666 (Div. 2) D. Stoned Game博弈论

CF 666 (Div. 2) D. Stoned Game博弈论

CF 1033 C. Permutation Game