1. 程式人生 > >2016.08.14【初中部 NOIP提高組 】模擬賽C

2016.08.14【初中部 NOIP提高組 】模擬賽C

這次比賽做的非常差,原因很多。首先,做第一題的時候再一次看錯題,浪費了整整1個小時(打類似NOip子矩陣那一題)的類似程式碼。這時,旁邊的人都已經在做2,3題了,於是就心慌了,沒有靜下心來思考,就打了一個過了自己出的很多資料的程式碼,誰知就因為一個細節的地方導致爆0.

而第2題則因為型別string沒有改成ansistring,白白掉了五十分。第三題看題就看了十分鐘,看懂後就果斷放棄(事實證明這是這場比賽我做的唯一正確的事情)於是,開始打第4題,打到最後時刻,還有一個數據沒過,想算了,能拿多少分就拿多少吧,然後又聽到後面的詹哲軒說倒計時一分鐘,我就繼續調資料,突然調過了,誰知,班上突然有人說“我擦爆0?這什麼情況?” (這句話應該我說..)聽到這句話,我就懵逼了(但事實又證明即使我交了上去也只能水10分...)所以還是自己智商不夠,還需繼續努力啊!

T1:很明顯的DP.

設f[i,j]表示位置(1,1)到(i,j)的總和。則f[i,j]:=f[i-1,j]+f[i,j-1]-f[i-1,j-1].

算出總和後直接求出最大的r*c矩陣即可.

T2:水題.

直接按照題目模擬的即可,每次乘一個數都mod m就行了.

T3:幾何+DP(高中數學)

確實沒聽懂.

T4:超級坑的一道題目,在考場上我做的就是正確的方法(也可以說是正確的思路)誰知只是一個問題沒有處理好:

那就是停留的情況.

設當前停留時的時間是x1,則停留之後時間為1-x1.

直接判斷 停留所需的時間+停留之前的最優時間 如果能更新停留之後時間的最優值,則更新,並把停留的這種情況也加入佇列裡面繼續拓展其他節點.

除了停留的情況,其他的拓展情況則是普通spfa,自己想想能很容易想出來的,相信我吧(這道題整整坑了我一個下午,4個半小時的時間,到現在才改完,我去**)

當然,這道題目還可以用別的辦法:

聽說叫做分層spfa.

意思就是把一個點拆成兩個點來看,如果當前天數是奇數的話,對應點的編號為[1..n],否則為[1+n..1+n+n],所以,我們可以在輸入的時候建好一個圖(注意,對於每次輸入都要把點自己原地不動的情況加進佇列裡)

建好一個這樣子的圖後,直接跑一遍spfa就行了.