1. 程式人生 > >Contest2156 - 2019-3-7 高一noip基礎知識點 測試2 題解版

Contest2156 - 2019-3-7 高一noip基礎知識點 測試2 題解版

return nal 打了 output 思路 rom noip rst 狀態壓縮

傳送門

預計得分:100+70+100+50=320

實際得分100+63+77+30=270

Ctrl_C+Ctrl_V時不要粘貼翻譯的,直接粘原文,

In a single line of the output print an integer — the maximum loyalty among all paths from the first node to the n-th one. If such paths do not exist or the maximum loyalty equals 0, print in a single line "Nice work, Dima!" without the quotes. 輸出能從1出發到n的總數值數,如果沒有,輸出“Nice work,Dima!”
兩個判錯之間在逗號前差了一個空格 QAQ

T1

dfs+剪枝

對於搜到的一組(a,b,c),將a*t^2+b*t+1(t>=20)標記,下一次再經過時就直接return

代碼


T2

容易想到區間一定是連續的

但是這種容易想到的一般都是錯的

例如數據

3 3

1 2 1 2

2 3 1 10000

1 2 7 8

顯然區間不是連續的。

於是,我們的思路是枚舉下界,二分上界,用dfs或是並查集維護1-n的連通

dfs太難打了,david-alwal太懶了,所以用了並查集


T3

個人認為是最簡單的一道題

一個BFS就可以解決

下標不能為負數!!

上代碼


T4

dfs+剪枝

剪枝1:,可行性剪枝:對於一個點(x,y),如果它左上角的顏色加上它走到底下的格子數大於k,就return 0

剪枝2,對稱性剪枝:例如我們當前填到了某個格子,我們記錄一下整個矩陣已使用的顏色,例如3,5都還沒用,那麽這個格子填上3或5,兩者最終算出的方案數是相同的,這樣我們就可以只計算3的方案數,5的直接加上3的就可以了。

用狀壓存狀態特別方便

沒有單獨講狀態壓縮的博客,只有講狀壓DP的,大家就只看狀壓那部分的吧 詳解狀壓 David-alwal太懶了

上代碼

Contest2156 - 2019-3-7 高一noip基礎知識點 測試2 題解版