第一題
考查的知識點:DP
【題目及題號】1807 superoj931
【題解】
本題是一道dp,可以三種複雜度做。
第一層 n^4 分別枚舉最後一個1,8,0,7然後分別算區間中有多少個1,8,0,7
第二層 n^2 對於8來說只能從1或者8轉移過來,那麼其他同理。掃一遍,注意判斷一下第一個可轉移的8前一定要有1。
第三層 n 上一層的每個數單獨記錄一下O(1)轉移。
【易錯點】
1.爲0的情況。
2.轉移不合法的情況,例如8888818 對於最後一個8只能從1轉移過來而不是最前面的8轉移而來。
第二題
考查的知識點:
最短路徑(spfa等)+最小生成樹(kruskal)
【題目及題號】minimum superoj932
【題解】
本題應該先處理每個白點到最近黑點的路徑,具體做法是讓所有黑點入隊跑SPFA,然後記錄白點的dis。
對於如何保留最短路徑圖,可以枚舉每一個白點,然後枚舉它連出去的邊 通過dis[now] =dis[to[i]]+len[i]來判斷。
最後對於選出來的邊找一棵最小生成樹。
【考試ING】
因爲題目描述問題,其實我的暴力是寫錯了的,但是運氣很好沒有這種數據。
然後在考場上其實是分析出了保留最短路徑圖找最小生成樹的過程,但是我不知道怎麼保留最短路徑圖。
首先是想到了用費用流的思想去記錄每個點的前驅結點,但是本題中每個點不一定只有一個前驅結點,所以我就傻逼了。Orz
{
本題提供了一個方法來保留最短路徑圖:通過dis[now]==dis[to[i]]+len[i] 爲真還是爲假來判斷。
}
第三題
考查的知識點:容斥原理(莫比烏斯函數)
【題目及題號】gcd superoj933
【題解】
本題的數學證明看solution吧。【記得放自己推導的圖片】
【注意事項】
1.開longlong
2.空集是否保留推導的時候要判斷一下。
題目 | 預估分數 | 實際分數 |
---|---|---|
1807 | 100 | 100 |
minimum | 30及以上 | 30 |
gcd | 30 | 30 |
最後的總結
心好累,我還有3000字的總結,10篇感想。我去年爲什麼要參加那個什麼鬼活動啊!!!!!!!!我要備賽,我要備賽!不想搞那邊!!!!討厭死了!!!!!嚶嚶嚶QAQ