bzoj2958 序列染色 DP

2022-07-31 20:18:08 字數 834 閱讀 7368

題目:傳送門

題解:大難題啊(還是我太菜了)

%一發大佬qtt

**:

1 #include2 #include3 #include4 #include5 #include6

#define mod 1000000007

7using

namespace

std;

8 typedef long

long

ll;9

intn,k;

10int sb[1110000],sw[1110000

];11 ll f[1110000][3][3];//

前i位狀態為j第i為為k的方案數 (k=0 為b k=1 為w)

12//

j==0 沒有k個b和k個w

13//

j==1 只有k個b

14//

j==2 有k個b和k個w

15char st[1110000

];16

intmain()

1726 memset(f,0,sizeof

(f));

27 f[0][0][1]=1;//

b在左邊所以先放個w...

28for(int i=1;i<=n;i++)

2938

if(st[i]!='

b' && sb[i]==sb[i-k])

3943

}44 printf("

%lld\n

",(f[n][2][0]+f[n][2][1]+mod)%mod);

45return0;

46 }

bzoj2958序列染色

暴風城傳送門 這題因為一開始使用了不方便的狀態,所以調了很久。網上大部分題解都是f i j k 為狀態的,但我是只用了f i j 所以迷操了很久。f i j k 的狀態和轉移比較簡單,而且我沒有分析過,所以這裡就不寫了,具體看別人的總結就好。然後我說一下我的方法。下面b用1表示,w用2表示。f i ...

bzoj 3675 序列分割(斜率優化DP)

傳送門biu 可以發現乙個序列先切和後切獲得的得分是一樣的。設s umi 為初始序列的字首和,設狀態fi k代表在i處分割 已經分割了k次的最大得分,那麼fi k sum i su mj sumj fj,k 1 max 考慮斜率優化。設p為f 乙個可行的值。則p sumi sum j su m2j ...

BZOJ4403 序列統計

description 給定三個正整數n l和r,統計長度在1到n之間,元素大小都在l到r之間的單調不降序列的數量。輸出答案對10 6 3取模的結果。input 輸入第一行包含乙個整數t,表示資料組數。第2到第t 1行每行包含三個整數n l和r,n l和r的意義如題所述。output 輸出包含t行,...