AtCoder Beginnner Contest 178 題解
A - Not
直接輸出 \(1-x\) 即可。
B - Product Max
發現答案一定是在 \(a\times c\)、\(a\times d\)、\(b\times c\)、\(b\times d\) 中出現。
輸出它們四個中的最大值即為答案。
C - Ubiquity
容斥一下,答案為 總方案數 - 0 或 9 沒有出現過的方案數
。
後面一塊可以繼續容斥,為 0 沒有出現的方案數 + 9 沒有出現的方案數 - 0 和 9 都沒有出現的方案數
,也就是 \(2\times 9^n-8^n\)。
最終答案即為 \(10^n-2\times 9^n+8^n\)。
D - Redistribution
設 \(dp_{i,j}\) 表示長度為 \(i\) 的序列和為 \(j\) 的方案數。
轉移時列舉第 \(i\) 位填的是數 \(k\),那麼轉移就是 \(dp_{i,j+k}+=dp_{i-1,j}\)。
理論上會 TLE,可以開 O2 艹過去或者用字首和優化(?)。
E - Dist Max
好題啊。
首先我們要知道,平面上兩點 \((x_1,y_1)\) 和 \((x_2,y_2)\) 的曼哈頓距離等於 \((x_1-y_1,x_1+y_1)\) 與 \((x_2-y_2,x_2+y_2)\) 的切比雪夫距離。這個可以通過去絕對值來證明。
\(\texttt{P.S.}\)
也就是 \(\max(|x_1-y_1-(x_2-y_2)|,|x_1+y_1-(x_2+y_2)|)\)。
不妨設 \(a_i\) 表示 \(x_i-y_i\),\(b_i\) 表示 \(x_i+y_i\)。
那麼我們就是要求 \(\max(|a_1-a_2|,|b_1-b_2|)\)。
也就是 \(\max(|a_i-a_j|,|b_i-b_j|)=\max(\max a_i-\min a_i,\max b_i-\min b_i)\)。
這些都可以直接求,複雜度 \(\mathcal{O}(n)\)。
F - Contrast
貪心。
有幾種方法,這裡直接貼別人的程式碼了 TNT。