10.11日noip多校聯考總結
T1
看到感覺像是一個很玄學的題目,在考場上推了大概一個多小時,又寫了大概半個小時,終於調出來了。
謹記:三分取mid需要進行浮點數運算。
對於每一行和每一列定義兩個陣列來記錄要加多少,因為我們只需要知道其中任意一個數就可以推出所有的數,那麼考慮列舉x0,來求出每一個值。
但是x0的範圍高達 \([-10^9,+10^9]\) 直接列舉絕對不行,我們將以x0作為自變數的函式畫出來,欽定一個點為這個函式的最小值所在的位置,可以發現對於這個數它加減同一個數後函式值是相同的,所以這個函式是單谷函式,可以使用三分進行求解。
T2
看到這道題想了一個暴力,期望得分30分,但其實暴力就是在找最小值並統計答案,所以就可以透過找最小值的方法來快速(線性)的求出答案。
T3
我考場上沒打出來這題的dfs暴力,因為感覺暴力的時間複雜度並不能透過部分分所給的限制。
可以發現,因為題目的性質,導致每個地鐵站之間的公交站都是獨立的,所以只要用 dp 來求每兩個地鐵站之間公交站的貢獻,再用組合數統計就可以了。
T4
使用子序列自動機,在上面跑暴力(sub1 Q=1)或類似於DAG鏈剖分的東西,將詢問進行處理。