码迷,mamicode.com
首页 > 其他好文 > 详细

JZOJ 1211. 取石子游戏

时间:2019-07-15 10:48:28      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:ons   策略   freopen   数据   不能   代码   cout   str   set   

题目

Description

     Jby考完了高考以后,一度闷得发颠…. 无聊之际,发明了一个新的取石子游戏! 规则如下,一共有N颗石子,每次最多可以取走K颗(不能不取),最先取不到的人算输(就是说谁取完谁就赢)。 为了延长这个游戏的时间,Jby弄来了整个宇宙的石子(挺够本事的…)…
 

Input

输入数据存放在文本文件game.in中
题目有T组数据
第一行为整数T(T<=20)
以下T行,两个整数K,N

Output

   输出数据存放在文本文件game.out中
   先行者有必胜策略输出“Yes”,否则输出“No”

 

Sample Input

2
2 3
3 2

Sample Output

No
Yes

 

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  }

 

JZOJ 1211. 取石子游戏

标签:ons   策略   freopen   数据   不能   代码   cout   str   set   

原文地址:https://www.cnblogs.com/zjzjzj/p/11187418.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!