1. 程式人生 > 其它 >AGC 001 題解

AGC 001 題解

\(A:\) 排序模擬

\(B:\) 規律題,答案就是 \(3(n - gcd(n,x) )\).

\(C:\)

如果 \(m\) 是偶數,列舉直徑的中點 \(k\) ,那麼 \(dis(k,i) \ge \frac m 2\) 都要被刪去,通過一次 \(dfs\) 找出。
如果 \(m\) 是奇數,列舉直徑的中間邊\(E\) ,從 \(E\)\((u, v)\) 兩個節點開始 dfs。

\(D:\)

我們根據題目給出的迴文串的劃分,將兩個相同的字元之間連邊。
那麼有解的充要條件就是圖連通,所以 \(a_i\) 中奇數的個數不多於 \(2\) 個。
因為奇數迴文串會少連一條邊,而圖聯通時至少是一棵樹,此時有 \(n-1\)

條邊。
考慮構造方案肯定是要把整個序列交錯開來,我們先把兩個奇數放在原序列的兩端,輸出此時的序列。
再將 \(a_1 = a_1 +1\) , \(a_n = a_n -1\) ,此時的 \(a\) 就是 \(b\) 陣列。
發現這樣本質上是一個平移,恰好可以使得序列交錯。特別的要注特判 \(n = 1\) 的情況。

\(E:\)

\(\sum_{i=1}^{n} \sum_{j=i+1}^{n} \binom{a_i+a_j+b_i+b_j}{a_i+a_j}\)
根據組合意義,\(\binom{x+y}{x}\) 可以表示在座標系上只能向上和向右走從 \((0,0)\) 走到 \((x,y)\)

的方案數。
那麼 \(\binom{a_i+a_j+b_i+b_j}{a_i+a_j}\) 則表示 \((-a_i,-b_i)\)\((a_j,b_j)\) 的方案數。
\(f_{i,j}\) 表示以 \((i,j)\) 作為結束點的總方案 ,所以 :

\[f_{i,j} = f_{i-1,j} + f_{i,j-1} + sum_{i,j} \]

\(sum_{i,j}\) 表示有多少個 \(k\) 滿足 \(-a_k = i\)\(-b_k = j\)
然後減去每個 \(i\) 自己對自己貢獻然後除以 \(2\) 就是答案。