Link
Solution
dp
拆位做
现在相当于有些区间必须全是 1 1 1
有些区间至少有一个 0 0 0,我把这个叫做零区间
f i f_i fi表示位于 [ 1 , i ) [1,i) [1,i)的零区间都满足了条件,且第 i i i个位置上是 0 0 0的方案数
Code
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define iinf 0x3f3f3f3f
#define linf (1ll<<60)
#define eps 1e-8
#define maxn 500010
#define cl(x) memset(x,0,sizeof(x))
#define rep(i,a,b) for(i=a;i