7 10校內test T2不等數列

2022-02-19 19:49:08 字數 1477 閱讀 7455

【題目鏈結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:

#includeusing

namespace

std;

intn,k;

int dp[1010][1010

];int

main()

}printf("%d

",dp[n][k]);

return0;

}

end-

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的時候,我還在可憐的與讀入作鬥爭 與讀入抗爭掉了大部分時間可還行...