20181020考試記錄
阿新 • • 發佈:2018-11-07
題目pdf
T1:
考場上被讀題搞蒙,最後才寫,但是盡然AC了(只有一個任務點)
最後發現就是將去時的秒數加上回來的秒數除以二即可
易證
主要考的是讀入優化
怎麼處理掉每行後面的(+1 +2)
read瞎搞搞即可
T2:
考場上腦袋抽筋想著用字尾和維護
但是並沒有打完
最後棄療
發現自己想少了
不僅要維護一維字首和,還要維護二維字首和
然後就建一棵線段樹去維護一維與二位
然後詢問的是一次函式(n,n-1,n-2,,,,,1)
所以詢問是不僅加上一些二維字首和也要加上一些一維字首和
eg:
當一個節點存的是3~6時
一維字首和為a3+a4+a5+a6
而二維字首和為:
4a3+3a4+2a5+1a6
而要詢問3~7時
二維字首和是不是還要再加上一個一維字首和,然後再加上a7
因為詢問當時5a3+4a4+3a5+2a6+a7
其他的也是這樣
時間複雜度:O(MlogN)
一個比較優秀的演算法(根號級)
分塊大法
考場上我也想過
但是因為沒有想到要把那幾個都存上
導致也沒有寫
但是盡然有人寫了
也是線段樹的思想
去維護
瞎搞搞整塊與散塊
就行了
時間複雜度:O(M*sqrt(N))
T3:
認為是這套卷子中最水的一道題
相鄰兩個合併,想到什麼
區間dp
然後發現左手啥用都沒有,只有右手絕對值之差即可
然後設dp[i][j]為從i~j合併時的最小值
所以dp[i][j]=min(dp[i][k],dp[k+1][j]+abs(r[j]-r[k])) (i<=k<j)
複雜度:O(N^3)
score:100+50+100=250