2018.09.16 loj#10242. 取石子游戲 2(博弈論)
傳送門
同樣有一個顯然的結論。
如果
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,x=0,y;
cin>>n;
for(int i=1;i<=n;++i)cin>>y,x^=y;
if(x)cout<<"win";
else cout <<"lose";
return 0;
}
相關推薦
2018.09.16 loj#10242. 取石子游戲 2(博弈論)
傳送門 同樣有一個顯然的結論。 如果a1a1 xorxor a2a2 xorxor a3a3 xor...xor... xorxor anan為0那麼後手勝。 否則先手勝。 這個可以用二進位制的
[BeiJing2009 WinterCamp]取石子游戲 Nim SG 函式
Code: #include<cstdio> #include<algorithm> #include<cstring> using namespace std; #define maxn 1003 int arr[13],step[13],SG[maxn]; bo
洛谷P2599||bzoj1413 [ZJOI2009]取石子游戲
bzoj1413 洛谷P2599 根本不會啊。。。 看題解吧 1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 #include<vector>
【洛谷P2252】取石子游戲
題面 題解 威佐夫博弈 程式碼 #include<cstdio> #include<algorithm> #include<cmath> #define RG register const double Phi((sqrt(5) + 1.) / 2.); int
【BZOJ1874】取石子游戲(SG函式)
題意:小H和小Z正在玩一個取石子游戲。 取石子游戲的規則是這樣的,每個人每次可以從一堆石子中取出若干個石子, 每次取石子的個數有限制,誰不能取石子時就會輸掉遊戲。 小H先進行操作, 他想問你他是否有必勝策略,如果有,第一步如何取石子 n<=10,a[i]<=1000,m<=10,b[i
zcmu 1122: 取石子游戲II
1122: 取石子游戲II Time Limit: 1 Sec Memory Limit: 128 MB Description 一堆石子有n個,兩人輪流取.每次取最少取1個,最多取m個。取完者勝.先取者負輸出"Second win".先取者勝輸出"First win" In
zcmu 1121: 取石子游戲I
1121: 取石子游戲I Time Limit: 1 Sec Memory Limit: 128 MB Description 一堆石子有n個,兩人輪流取.先取者第1次可以取任意多個,但不能全部取完.以後每次取的石子數不能超過上次取子數的2倍。取完者勝.先取者負輸出"Second
【BZOJ1413】取石子游戲(博弈,區間DP)
題意:在研究過Nim遊戲及各種變種之後,Orez又發現了一種全新的取石子游戲,這個遊戲是這樣的: 有n堆石子,將這n堆石子擺成一排。遊戲由兩個人進行,兩人輪流操作,每次操作者都可以從最左或最右的一堆中取出若干顆石子, 可以將那一堆全部取掉,但不能不取,不能操作的人就輸了。 Orez問:對於任意給出一個初
[BZOJ 1874] [BeiJing2009 WinterCamp] 取石子游戲
Description 每個人每次可以從一堆石子中取出若干個石子,每次取石子的個數有限制,誰不能取石子時就會輸掉遊戲。請你求出是否有先手必勝策略,如果有,第一步如何取石子。 Solution 當各堆的 \(SG\) 函式的異或和不為 \(0\) 時為必勝態,證明如下 Code #include
洛谷 P2252 取石子游戲 威佐夫博弈
傳送門 也是背一下的結論 有兩堆各若干個物品,兩個人輪流從任意一堆中取出至少一個或者同時從兩堆中取出同樣多的物品,規定每次至少取一個,至多不限,最後取光者勝利。兩堆物品a,b , c=floor((b-a)*((sqrt(5.0)+1)/2)); 若a==c則後手贏,反之先手贏
POJ——1067 取石子游戲(威佐夫博弈)
有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在兩堆中同時取走相同數量的石子。最後把石子全部取完者為勝者。現在給出初始的兩堆石子的數目,如果輪到你先取,假設雙方都採取最好的策略,問最後你是勝者還是敗者。
POJ-1067 取石子游戲
題意: 給定兩堆石子, 有兩種取法: 1. 在其中任意一堆中去任意多石子 2. 在兩堆中取相同多石子 最少取一個石子, 不能取為敗。 分析:這道題是一個標準的威佐夫博弈, 對於為一個狀態(a, b)如
[bzoj1874][BeiJing2009 WinterCamp]取石子游戲_博弈論
取石子游戲 bzoj-1874 BeiJing2009 WinterCamp 題目大意:題目連結。 註釋:略。 想法: 我們通過$SG$函式的定義來更新$SG$的轉移。 如果是尋求第一步的話我們只需要求一下到底是哪個使得$SG$值是0即可。 Code: #include <ios
取石子游戲 博奕(Wythoff Game)
點選做題! Time Limit: 1000MS Memory Limit: 10000K 原題: Description 有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在兩堆中
sincerit 1527 取石子游戲(威佐夫博弈)
取石子游戲 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 9962 Accepted Sub
【HDU】取石子游戲 威佐夫博弈
取石子游戲 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm
取石子游戲(威佐夫博弈)
有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在兩堆中同時取走相同數量的石子。最後把石子全部取完者為勝者。現在給出初始的兩堆石子的數目,如果輪到你先取,假設雙方都採取最好的策略,問最後你是勝者還是敗者。
HDU-1527-取石子游戲【威佐夫博弈】
HDU-1527-取石子游戲 Problem Description 有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在兩堆中同時取走相同數量的石子。最後
zcmu-1113取石子游戲(威佐夫博弈)
1113: 取石子游戲 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 267 Solved: 128 [Submit][Status][Web Board] Description 有兩堆石子,數量任意,可以不同。遊戲開始
HD-1527-取石子游戲(威佐夫博弈)
Problem Description 有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在兩堆中同時取走相同