Codeforces Round #685 (Div. 2)——D. Circle Game
程序员文章站
2022-03-15 23:44:36
...
思路:比较典型的对称博弈,首先来看一下什么是对称博弈
【博弈规则】:
n 个棋子围成一圈, 两人轮流从中取走一或两个棋子, 不过取两个时必须是连续的
棋子. 棋子取走之后留下空位, 相隔空位的棋子不连续。取走最后一个棋子的获胜。
【博弈分析】:
当n ≤ 2 n\leq2n≤2,先手必胜。
当n ≥ 3 , n\geq3,n≥3,先手必败。无论先手怎么拿,后手都可以构造出不连通对称局面,模仿先手即可获胜。
因为从原点出发,如果第一个人移动,第二个人的最优就是走另一个方向,直到有一个人出局
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int t;
int main()
{
cin>>t;
while(t--){
ll d,k;
cin>>d>>k;
ll x = 0,y = 0;
int f1 =0,f2 = 0;
while(x*x+y*y<=d*d){
x+=k;
if(x*x+y*y>d*d){
f1 = 1;
break;
}
y+=k;
if(x*x+y*y>d*d){
f2 = 1;
break;
}
}
if(f1==1){
cout<<"Utkarsh"<<endl;
}
else if(f2==1){
cout<<"Ashish"<<endl;
}
}
}
推荐阅读
-
Educational Codeforces Round 97 (Rated for Div. 2) D. Minimal Height Tree
-
Codeforces Round #665 (Div. 2) D. Maximum Distributed Tree(dfs)
-
Codeforces Round #619 (Div. 2) D. Time to Run
-
Codeforces Round #583 (Div. 1 + Div. 2,) D. Treasure Island(dfs+思维)
-
Educational Codeforces Round 85 (Rated for Div. 2) C. Circle of Monsters(前缀和 预处理 贪心)
-
Codeforces Round #533 (Div. 2) D. Kilani and the Game(bfs+模拟)
-
Codeforces Round #685 (Div. 2)
-
Codeforces Round #651 (Div. 2) C. Number Game
-
Codeforces Round #643 (Div. 2) D. Game With Array
-
Codeforces Round #564 (Div. 2) D - Nauuo and Circle(树上排列)