Wannafly挑戰賽24 A 石子遊戲

2021-08-28 03:20:25 字數 651 閱讀 3942

alice和bob在玩遊戲,他們面前有n堆石子,對於這些石子他們可以輪流進行一些操作,不能進行下去的人則輸掉這局遊戲。

可以進行兩種操作:

1. 把石子數為奇數的一堆石子分為兩堆正整數個石子

2. 把兩堆石子數為偶數的石子合併為一堆

兩人都足夠聰明,會按照最優策略操作。現在alice想知道自己先手,誰能最後贏得比賽。

第一行乙個正整數n。(1<=n<=104)

接下來第二行n個正整數表示每堆石子的數量。每堆石子不超過105個。

alice或者bob,表示誰能最後贏得遊戲。

示例1複製

3

3 2 2

複製

alice
alice只要現將兩個石子數量為2的堆合併為一堆4個石子,bob就只能把3分為兩堆1和2,接下來alice只要將2和4合併,bob輸掉了這局遊戲。
#include #include int ans[100010];

int main()

if (a %2 ==1||a==0&&ans[1]==b)

puts("bob");

else puts("alice");

return 0;

}

Wannafly挑戰賽A 概率DP

給你乙個長 n 的序列,m 次查詢 每次查詢給乙個 x,然後 從序列的最左端 1 開始,每次隨機的選擇乙個右端點 r,如果兩個端點間的區間和不超過 x 就進行一次分割,然後把左端點變成 r 1,否則一直隨機下去。問這樣分割出來的期望段數 第一行兩個數 n,m 之後一行 n 個數表示這個序列 之後m行...

Wannafly挑戰賽5 補題

a 珂朵莉與宇宙 思路 科學暴力 列舉字首和,同時計算字首和裡面可能出現的完全平方數,匹配字首和 與完全平方數的差值是否在之前的字首和出現,出現了幾次就是存在多少個區間,利用的是連續的性質。include using namespace std typedef long long ll const ...

Wannafly挑戰賽6 鎖

106號房間共有n名居民,他們每人有乙個重要度。房間的門上可以裝若干把鎖。假設共有k把鎖,命名為1到k。每把鎖有一種對應的鑰匙,也用1到k表示。鑰匙可以複製並發給任意多個居民。每個106房間的居民持有若干鑰匙,也就是1到k的乙個子集。如果幾名居民的鑰匙的並集是1到k,即他們擁有全部鎖的對應鑰匙,他們...