取石子(sg函式)

2022-09-06 17:15:13 字數 686 閱讀 1323

alice和bob有n桶石子,裡面有ai個,他們每次只能其中一某堆裡取奇數個,不能拿的人輸,alice總是先拿

1<=n<=200,1<=ai<=1e9

input

第一行為 n

第二行為 n個數 ai

output

最後獲勝的人alice或bob

sample input

33 2 1

sample output

bob

#include #include#include #include #include #include #include #include #include #include #include #include //#include using namespace std;

typedef long long ll;

const int n=4e5+7;

const int mod=1e9+7;

inline ll read()

while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();

return s*w;

}int main()

if(ans%2==0)

cout<<"bob"

cout<<"alice"<}

return 0;

}

取石子遊戲與SG函式

題目 題意 有3堆石子,石子數量分別為a,b,c,有兩個玩家,每次只能從任意一堆中取f個,這裡的f只能為fibnacci數,問是先手 勝 還是先手敗.分析 由於石子的數量都在1000以內,那麼我們可以先預處理出1000以內的sg函式值,然後對於3堆石子,我們進行異或,如果為 0說明先手必敗,否則必勝...

BZOJ 3895 取石子 SG函式 搜尋

有n堆石子 從某堆石子中取走乙個 合併任意兩堆石子 不能操作的人輸。100 的資料滿足t 100,n 50.ai 1000 容易發現基礎運算元 d sum a i n 1 沒有個數為1的堆還好說,有的話 好麻煩啊啊啊啊啊怎麼可能找規律 然後看題解,woc記憶化搜尋 f i,j 表示i個個數為1的堆,...

石子遊戲 SG函式

problem description alice 和 bob 總喜歡聚在一起玩遊戲 t t 今天他 她 們玩的是一款新型的取石子遊戲。遊戲一開始有n堆石子,alice 和 bob 輪流取出石子。在每次操作中,遊戲者必須選擇其中的一堆石子,並作出下列的其中一種操作 1 移去整堆石子 2 假設石子堆中...