題目:傳送門
題解:大難題啊(還是我太菜了)
%一發大佬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行,...