湖南集訓Day1

2022-04-06 02:31:41 字數 2383 閱讀 7193

難度不斷網:☆☆☆

斷網:☆☆☆☆

/*

卡特蘭數取模 由於資料範圍小,直接做。

考試時斷網。忘記卡特蘭數公式,推錯了只有5分。

數學公式要記別每次都現用現搜!!!

*/#include

#include

#include

using

namespace

std;

int f[1007

];int

n,m,ans;

intmain()

/*

模數較小是乙個坑點,直接做逆元可能爆掉(模數很小許多數沒有逆元)

答案是 2n!/(n!*(n+1))! 如果直接逆元,2n!預處理很可能成為零,但做了除法後答案可能不是零,就會出錯。

所以7的倍數要單獨考慮

這裡記錄了7的倍數的因子裡7的冪,然後分子分母就可以加加減減了。這個題用不到。

原來逆元還可以直接搞...

帶權並查集

維護鏈底,鏈頂,並查集找鏈底,並維護鏈的大小

合併時兩個鏈頂鏈底都要維護。別忘了鏈底size大小改為1。

區間dp,情況有些多需要討論

首先連續相同的顏色為了方便要合併,記錄每個塊的顏色,就可以dp了

dp[l][r]表示合併這段區間的最小步數,分幾種情況

這段區間是奇數(為了避免區間長度為2的情況)

1. color[l]==color[r] && tot[l]+tot[r]==2 --> dp[l][r] 可從 dp[l+1][r-1]+1 轉移過來。

2. color[l]==color[r] && tot[l]+tot[r]>2 --> dp[l][r] 可從 dp[l+1][r-1] 轉移過來。

3. color[l]==color[k]==color[r](k∈(l,r) && [l,k],[k,r] 為奇數) -->可從dp[l+1][k-1]+dp[k+1][r-1]轉移過來。

這段區間是偶數

普通的轉移 dp[l][r] =min(dp[l][r] , dp[l][k]+dp[k+1][r]);

*/#include

#include

#include

#define n 257

using

namespace

std;

intdp[n][n],col[n],a[n];

char

s[n];

intn,m,ans;

intmain()

else

}for(int len=0;len<=m;len++)

else

if(a[i]+a[j]<4

)

for(int k=i+2;k2

)

}} }}

}printf(

"%d\n

",dp[1

][m]);

return0;

}

國慶集訓Day1

題意 有 n 個數 a 1,a 2,a n 有m個數 b 1,b 2,b n 令 a a 1 times a 2 times times a n 令 b b 1 times b 2 times times b n 判斷 a 是否是 b 的倍數 輸入 n,m 輸出 yes no 做法 就是個一簡單的質...

寒假集訓系列DAY 1

problem a.string master master.c cpp pas 題目描述 所謂最長公共子串,比如串 a abcde 串 b jcdkl 則它們的最長公共子串為串 cd 即長 度最長的字串,且在兩個串中都作為連續子串出現過。給定兩個長度都為 n 的字串,對於字串大師的你來說,求它們的...

長沙集訓day1(總結)

今天是在長沙雅禮中學的第一天,上午到哪我嘞個哥,那麼多人。人與人座位之間間隔不超過10cm。真是無語 考試開始看到題目,直接粘.orz 看到知道題當沒弄懂題是啥意思 我還是太弱了 沒看見樣例解釋qaq,想了30分鐘才反應過來.想著用spfa直接求最短路就行,然後.然後.我tm忘了模板是啥了qaq.說...