1. 程式人生 > >2018 ICPC 沈陽網絡賽

2018 ICPC 沈陽網絡賽

下界 chang 因數 num 容斥 上下界網絡流 solution 最終 lin

2018 ICPC 沈陽網絡賽

Call of Accepted

題目描述:求一個算式的最大值與最小值。

solution
按普通算式計算方法做,只不過要同時記住最大值和最小值而已。

Convex Hull

題目描述:定義函數\(gay(x)\),若\(x\)是某個非\(1\)的數的平方的倍數,則\(gay(x)=0\),否則\(gay(x)=x^2\),求\(\sum_{num=1}^{n} ( \sum_{i=1}^{num} gay(x) ) mod p\)

solution
\[\sum_{num=1}^{n} ( \sum_{i=1}^{num} gay(x) ) mod p\]
\[(n+1)\sum_{i=1}^{n} gay(i) - \sum_{i=1}^{n} i \cdot gay(i)\]


然後容斥就可以算出答案,用上莫比烏斯函數。

時間復雜度:\(O(\sqrt{n}\))

D. Made In Heaven

題目描述:判斷圖的\(k\)短路是否不超過\(T\).

solution
模板題。

F. Fantastic Graph

題目描述:給定一個二分圖,現在選擇一些邊,使得最終所有點的度都在\([L, R]\),判斷是否可行。

solution
上下界網絡流的模板題。

G. Spare Tire

題目描述:定義\(a_n\),求\(\sum_{i=1}^{n} [gcd(m, i)=1] a_i\)
\[ a_n =\left\{\begin{matrix} 0, & n=0\\ 2, & n=1\\ \frac{3a_{n-1} - a_{n-2}}{2}+n+1 & n>1 \end{matrix}\right. \]

solution
找規律可得\(a_n=n(n+1)\),
\[\sum_{i=1}^{n} [gcd(m, i)=1] a_i\]
\[=\sum_{d|m} \mu(d) \sum_{x=1}^{n/d} (xd)(xd+1)\]
\[=\sum_{d|m} \mu(d)[d^2 \sum_{x=1}^{n/d} x^2 + d \sum_{x=1}^{n/d} x]\]

所以可以對\(m\)分解質因數,窮舉\(m\)所有非平方倍數的因子(因為只有這些因子對應的\(\mu\)不為\(0\)),後面的直接求和即可。

時間復雜度:\(O(能過)\)

I. Lattice‘s basics in digital electronics

solution
字典樹+模擬。

J. Ka Chang

題目描述:有一棵有根樹,有兩種操作:1.給深度為\(L\)的點加\(x\) 2.求一棵子樹的和。

solution
樹分塊。求樹的\(dfs\)序,將\(dfs\)序分成\(\sqrt{n}\)塊,算出每一塊每種高度的個數,對於操作1,每一塊的答案增加\(x\)乘於高度為\(L\)的個數。對於操作2,求的是\(dfs\)中連續一段區間的和,那就是很普通的分塊計算。

時間復雜度:\(O(n\sqrt{n})\)

K. Supreme Number

題目描述:如果一個素數的非空子序列也是素數(或者\(1\)),那麽這個素數叫做超級素數,給定一個\(n\),求不大於\(n\)的最大超級素數。

solution
顯然這樣的數不多,而且比較小,所以可以先暴力求出所有超級素數,然後詢問的時候再二分查找。

時間復雜度:\(O(能過)\)

2018 ICPC 沈陽網絡賽