暑期個人賽 第二場 C

2021-06-22 23:40:56 字數 1035 閱讀 6534

時間限制 1000 ms

記憶體限制 65536 kb

現有一段橫向長度為n的山脈,其中每段有乙個獨一無二的高度hi(1到n之間的正整數)。現在你想知道對於長度為n的山脈,可能有這樣的山脈多少種。這樣的山脈是:某個位置要麼比兩邊的高度都低,要麼比兩邊的高度都高。兩座山脈 a和 b 不同當且僅當存在乙個 i,使得 ai≠bi。由於這個數目可能很大,你只對它除以 p 的餘數感興趣。

輸入以eof為結束,每組僅含一行,兩個正整數 n, p。 3≤n≤4200,p≤10^9

對於每組資料輸出僅含一行,乙個非負整數,表示你所求的答案對 p 取餘之後的結果。

4 7

3

說明:共有 10 種可能的山脈,它們是:

1324 1423 2143 2314 2413

3142 3241 3412 4132 4231

賽中提交:null

賽後ac:no

思路:這道題最重要的就是要先發現乙個對稱的性質,那就是假設我們已經找到了乙個符合條件的排列

如果我們取他的倒影(比喻),那麼這個倒影也會是另乙個答案

接下來就是dp的事了,具體參考**中的dp遞推關係

下面是ac**

#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

int n;

ll p;

ll dp[4300];

int c[4300][4300];

ll solve()

{ int i,j;

dp[0]=1;

dp[1]=1;

dp[2]=1;

dp[3]=2%p;

dp[4]=5%p;

c[1][1]=1;

c[1][0]=1;

c[2][0]=1;

for(i=2;i

暑期個人賽 第二場 A

時間限制 1000 ms 記憶體限制 65536 kb 丁神要去google上班了,去之前丁神想再做一道水題,但時間不多了,所以他希望題目做起來既水又快。現在一共有 n 道題,編號從1到 n 每道題有兩個值 a 和 b a 為做這道題需要的時間,b 為題目的 水值 丁神希望做b a 最大的那題。輸入...

暑期個人賽 第五場 C

時間限制 1000 ms 記憶體限制 65536 kb 給定乙個字串,求它的乙個重排,使得沒有兩個相鄰字元相同。第一行乙個整數t,表示組數 t 10 接下來的t行,每行乙個字串s,s中只包含小寫字母,s的長度不大於1e5.若符合條件的重排存在,輸出字典序最小的乙個。若不存在,輸出 1。2 aabbc...

暑期個人賽 第三場 A

a.學姐的數碼管 2014新生暑假個人排位賽03 時間限制 1000 ms 記憶體限制 65536 kb 題目描述 學姐的七段數碼管玩的出神入化。現在給你乙個浮點數,你需要把它以七段數碼管的形式輸出出來。乙個 2 n 1 n的矩陣來表示七段數碼管,若下標均從0開始,則以第0列的兩個,第n 1列的兩個...