第二屆你要魔怔杯鮮花大賽!!!部分作品列表

AsiraeM發表於2024-06-29

雜題口胡2024.6.29。
靈感來自某 j 姓人士的部落格。事實上之前也有這樣做過,但是沒寫部落格記錄下來。

無營養熱身題

1.[ARC122D] XOR Game

黑板上有 \(2n\) 個整數 \(a_{1\dots 2n}\)。每輪操作,Alice 先從黑板上選擇一個數 \(x\) 並將其擦掉,Bob 再從黑板上選擇一個數 \(y\) 並將其擦掉,然後把 \(x\oplus y\) 寫在筆記本上。遊戲的分數是最終筆記本上 \(n\) 個數的最大值。Alice 的目標是將分數最大化,Bob 的目標是將分數最小化。請求出兩者採取最佳行動的情況下,遊戲的分數是多少。
\(1\le n\le 2\times 10^5\)\(0\le a_i<2^{30}\)

這種題大機率要一位一位貪心。
發現如果某一位有偶數個 \(1\)(等價於有偶數個 \(0\)),那麼 Alice 選 \(1\),Bob 也選 \(1\);Alice 選 \(0\),Bob 也選 \(0\),可以分成兩組遞迴下去。
否則這一位必定是 \(1\),只要找出異或值最小的兩個數即可。

正常題

1.[CF1704H] Game of AI

在困難版本中你需要回答 \(\bm{n=1,2,\dots,k}\) 時的答案,簡單版本中你只需要回答 \(\bm{n=k}\) 時的答案。
Cirno 在玩一款有 \(n\) 個塔和 \(n\) 個機器人的戰爭模擬遊戲。一開始第 \(i\) 個機器人佔領了第 \(i\) 個塔。
在遊戲開始之前,Cirno 可以選擇一個長度為 \(n\)排列 \(p_n\) 和長度為 \(n\) 的正整數序列 \(a_1,a_2,\dots,a_n\)。其中 \(1\leq a_i\leq n\)\(a_i\not =i\)
遊戲中有 \(n\) 次攻擊:第 \(i\) 輪當中:

  • 如果機器人 \(p_i\) 還在賽場,那麼它會佔領 \(a_{p_i}\),這時原來佔領 \(a_{p_i}\) 的機器人不再佔領 \(a_{p_i}\)
  • 否則,不會發生任何事情。

每輪遊戲結束後,沒有佔領任何塔的機器人會退出遊戲。
遊戲結束後 Cirno 會統計佔領每一個塔 \(i\) 的機器人編號 \(b_i\)
作為數學大師,你需要求所有數列對 \((a,b)\) 使得存在可能的 \(p_i\) 使得經過上面遊戲後統計到的結果為 \(b\)
答案對 \(M\) 取模。\(k\leq 10^5,2\leq M\leq 10^9\)。保證 \(M-1\)\(2^{18}\) 的倍數。

見題目知 poly。
先考慮對於給定的序列 \(a\) 單獨計數。邊 \((i,a_i)\) 形成了一棵基環樹。每個波特只會動一下,因此當且僅當它在動之前被偷家了,它的回合才會跳過。
這樣可以把一棵基環樹拆成若干棵小樹,每顆小樹中,點 \(i\) 上的機器人往 \(a_i\) 移動了一格(樹根是在動之前被偷家了的那個)。
對於環要特別考慮,斷一條邊。因此先把環的情況扔掉。

好題

相關文章