【題目鏈結luogu】
此題在luogu上模數是2015,考試題的模數是2012。
然後這道題聽說好多人是打表找規律的(就像7.9t2一樣)(手動滑稽_gc)
另外手動
sy,每次測試都無意之間bibi正解,然後說自己是不會做是個什麼騷氣操作。
所以我們來看真.題解;
solution:
首先,輸入莫得什麼好說的;
當然想用快讀咱也攔不住(就是想用咬我啊);
咱可能最近因為學長講了一道dp,印象比較深刻,所以咱居然看到這道題就想到正解應該是dp了!?
接下來就是設計dp狀態了:
dp[i][j]表示i個數,恰有j個『
轉移就很神奇很有意思了:
當我們已知dp[1~i-1][1~k]時,我們考慮求dp[i][j];
當數從i-1~i時,顯然數列增加的數是大於1~i-1的(莫得因為什麼,不好解釋,感性理解);我們考慮把i這個數加在**:
①加在序列的最左側:
因為i>1~i-1的任何乙個數,所以一定是『>』,因此對『
②加在序列最右側:
同理因為i>1~i-1任何乙個數,所以當將i放在序列最右側時,一定會增加乙個『
③加在乙個『
實際上不會增加『
④加在乙個『>』中間:
增加了乙隻『
所以由此我們可以推出狀態轉移方程:
當i加在第①③種情況時,不會產生新的『
可以計算1~i-1的序列中,共有j個『
當i加在第②④種情況時,會產生新的'
④情況:我們知道當前情況下1~i-1中共有j-1個『>』,總共的符號數為i-2個,因此其中『>』數為i-2-(j-1)=i-j-1個,再加上②情況的一種,所以共有i-j個可以產生乙個新的『
轉移方程:dp[i][j]=dp[i-1][j]*(j+1)+dp[i-1][j-1]*(i-j);//注意取模
然後是初始狀態:
當我們有0個『
最後的答案顯然就是dp[n][k]了;
code:
#includeusingend-namespace
std;
intn,k;
int dp[1010][1010
];int
main()
}printf("%d
",dp[n][k]);
return0;
}
7 10校內test T3經營與開發
題目鏈結luogu 它 又是個dp 我 我討厭dp 然後又是讀入,顯然用快讀啊 資料範圍還是很大的 習慣 然後我們發現,不論是損耗值 維修值,還是 採礦所得,維修花費 都帶著個p,因此我們可以把p提出來?dp i 表示第i個星球 第n個星球的最大賺取費用 那麼我們的解就是dp 1 考慮一下 假設第i...
7 9校內test T2 極值問題
這個題真的,毫無思路的說,但是我們會打表啊 lz的打表之路 當然是手寫乙個暴力啦 然後滾去配置lemon測試一下暴力可以得多少分qwq 是的40分呢!然後其實看上面也能看出來一些規律了,定睛一看 但其實我並沒有看出來 斐波那契數列!於是我們就可以找斐波那契數列中最大的小於等於k的兩項,然後碼量也不多...
6 28校內test T1 Jelly的難題1
jelly的難題 題目鏈結 好了廢話完了,下面是題解部分 solution 首先你可能發生的,是看不懂題 定睛一看,這是個廣搜!然後非常幸運昨天剛做了乙個廣搜的題,然後我就會了 首先先是輸入部分,這個真的很毒瘤了,當sy已經去忙akt1的時候,我還在可憐的與讀入作鬥爭 與讀入抗爭掉了大部分時間可還行...