题目
Description
Jby考完了高考以后,一度闷得发颠…. 无聊之际,发明了一个新的取石子游戏! 规则如下,一共有N颗石子,每次最多可以取走K颗(不能不取),最先取不到的人算输(就是说谁取完谁就赢)。 为了延长这个游戏的时间,Jby弄来了整个宇宙的石子(挺够本事的…)…
Input
输入数据存放在文本文件game.in中
题目有T组数据
第一行为整数T(T<=20)
以下T行,两个整数K,N
Output
输出数据存放在文本文件game.out中
先行者有必胜策略输出“Yes”,否则输出“No”
Sample Input
22 33 2
Sample Output
NoYes
Data Constraint
数据范围
20%的数据 K≤10 N≤30,000,000
50%的数据 K≤100 N≤2^31-1
100%的数据 K≤1000 N≤10^1000
分析
-
显然博弈论的题 四种常见之一
- 但是输入的n可能很大,用快读边读边%就好了
代码
1 #include<bits/stdc++.h> 2 using namespace std; 3 long long n,k; 4 inline int read(){ 5 int x=0,f=1; 6 char ch=getchar(); 7 while(ch<‘0‘||ch>‘9‘){ 8 if(ch==‘-‘) 9 f=-1; 10 ch=getchar(); 11 } 12 while(ch>=‘0‘&&ch<=‘9‘){ 13 x=((x<<1)+(x<<3)+(ch^48))%(k+1); 14 ch=getchar(); 15 } 16 return x*f; 17 } 18 int main () 19 { 20 freopen("game.in","r",stdin); 21 freopen("game.out","w",stdout); 22 long long T; 23 cin>>T; 24 while (T) 25 { 26 T--; 27 cin>>k; 28 n=read(); 29 if (n%(k+1)==0) cout<<"No"<<endl; 30 else cout<<"Yes"<<endl; 31 } 32 }
原文地址:https://www.cnblogs.com/zjzjzj/p/11187418.html
时间: 2024-10-11 14:27:23