【hdu 1527】取石子游戏
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 6706 Accepted Submission(s): 3646
Problem Description
有兩堆石子,數(shù)量任意,可以不同。游戲開始由兩個人輪流取石子。游戲規(guī)定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在兩堆中同時取走相同數(shù)量的石子。最后把石子全部取完者為勝者。現(xiàn)在給出初始的兩堆石子的數(shù)目,如果輪到你先取,假設(shè)雙方都采取最好的策略,問最后你是勝者還是敗者。
Input
輸入包含若干行,表示若干種石子的初始情況,其中每一行包含兩個非負(fù)整數(shù)a和b,表示兩堆石子的數(shù)目,a和b都不大于1,000,000,000。
Output
輸出對應(yīng)也有若干行,每行包含一個數(shù)字1或0,如果最后你是勝者,則為1,反之,則為0。
Sample Input
2 1
8 4
4 7
Sample Output
0
1
0
【題目鏈接】:http://acm.hdu.edu.cn/showproblem.php?pid=1527
【題解】
【完整代碼】
#include <bits/stdc++.h> using namespace std; #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define LL long long #define rep1(i,a,b) for (int i = a;i <= b;i++) #define rep2(i,a,b) for (int i = a;i >= b;i--) #define mp make_pair #define pb push_back #define fi first #define se second #define rei(x) scanf("%d",&x) #define rel(x) scanf("%I64d",&x)typedef pair<int,int> pii; typedef pair<LL,LL> pll;//const int MAXN = x; const int dx[9] = {0,1,-1,0,0,-1,-1,1,1}; const int dy[9] = {0,0,0,-1,1,-1,1,-1,1}; const double pi = acos(-1.0);int a,b;int main() {//freopen("F:\\rush.txt","r",stdin);while (~scanf("%d%d",&a,&b)){if (a>b)swap(a,b);int x = b-a;int temp = floor(x*(1.0+sqrt(5))/2.0);if (temp==a)puts("0");elseputs("1");}return 0; }轉(zhuǎn)載于:https://www.cnblogs.com/AWCXV/p/7626728.html
總結(jié)
以上是生活随笔為你收集整理的【hdu 1527】取石子游戏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【codeforces 742A】Arp
- 下一篇: 又搬回来了233