但是今天的古報還是發。明天就沒古報了,因為要回學校集訓,一天打不了三場,所以可能 128~130 的古報會幾天之後發。
ARC131
ARC131D AtArcher
對於兩側,我們選的個數一定最多差 \(1\)。而對於一側,我們選的點一定是 \(r,r+d,\dots,r+kD\),其中 \(r\le D\)。於是我們對於每一個 \(k,r\) (\(k\in[n/2-1,n/2+1]\))都算出一側的答案即可。用差分即可。
ARC131E Christmas Wreath
考慮到 \(n\le 5\) 或 \(n\%3=2\) 顯然無解。然後考慮如何構造 \(n=6\)。我們發現可以讓 \(1\) 連向其餘的邊全為 R。這麼操作的意義是,之後所有含 \(1\) 的三元環就不可能同色了。於是我們推而廣之,每次可以選擇一個點,將其出邊全部染成相同顏色,然後就可以把這個點給刪掉了。也就是我們需要將 \(1,2,\dots,n-1\) 劃分成三類,每類 sum 相同。這個 DP 一下即可。
ARC132
ARC132D Between Two Binary Strings
考慮到在答案串中每個 \(1\) 的位置,都應該處於 \([l_i,r_i]\),其中 \((l_i,r_i)\) 為 \(s,t\) 中第 \(i\) 個 \(1\) 的位置。於是我們貪心地進行操作,最大化相鄰 \(1\) 的個數,每次能與左邊相鄰就相鄰,否則貪心放在 \(r_i\) 處。最後一個 \(1\) 若處在末尾則有額外的相鄰的 \(0\) 的貢獻。然後還需要考慮第一個 \(1\) 放在最左側會有額外的相鄰的 \(0\) 的貢獻,於是欽定第一個 \(1\) 在首位之後後面在做一次,兩者取 max 即可。
ARC132E Paw
考慮最終局面狀態。由於一定不會有 ><
,所以一定長成 <<<...>>>
這種樣子,其中 ...
是原串部分。於是考慮 \(f_i\) 表示從頭開始 \(i\) 個洞都是 <
的機率。那麼從 \(i-1\) 轉移過來後,第一個洞要麼向左,要麼早於其它洞,所以有 \(1-\frac{1}{2i}\) 的機率。於是 \(f_i=f_{i-1}\times \frac{2i-1}{2i}\)。然後就結束了。
ARC132F Takahashi the Strongest
這種奇怪的變換給人一種多進位制 FWT 的感覺。先補集轉換,並考慮簡化成出的與其餘兩個人相同時獲勝(這個與原題沒有區別),那麼就得到 1+1->1, 2+2->2, 3+3->3, 其餘全部變成 0。考慮對這個編一個蝴蝶變換:第一次變換 0‘=1+2+3,其餘不變,然後再點積後,逆變換做 0’=0-1-2-3, 1‘=0-1, 2‘=0-2, 3’=0-3。容易得知這樣可以得到答案序列。複雜度 \(O(k4^k)\)。
ARC133
ARC133D Range XOR
首先考慮變成字首 xor。然後我們發現如果考慮除了最低位的其餘位,若 \(x\) 是偶數,那麼字首 xor 為 \(0\),否則字首 xor 為自身。並且最低位只與 \(x\) 模 \(4\) 的餘數有關。於是我們列舉 \(l,r\) 模 \(4\) 的餘數,然後對其餘位數位 DP 即可。
ARC133E Cyclic Median
首先需要考慮將其變成對於每個 \(k\),算出中位數 \(> k\) 的方案數,於是每個數都變成了 \(0/1\)。然後我們發現如果 \(x=y\) 那麼 \((a,x,y)\) 一定會變成 \(x\)。並且對於 \(k\) 和 \(v-k\),\(x=y\) 的貢獻對稱。所以我們只需要統計 \(x\neq y\) 的貢獻,此時只有 \(k<a\) 時才有貢獻。這個是容易的,對於每一個環(共 \(\gcd(n,m)\) 個環),方案都是 \(k^{n'}(v-k)^{m'}+k^{m'}(v-k)^{n'}\)。於是對於每個 \(k\) 把方案數疊加起來即可。