前言
传送门 :
A.Marin and Photoshoot
一串 01 01 01字符串,使得长度 > = 2 >=2 >=2的子序列, 都满足 c n t ( 1 ) > = c n t ( 0 ) cnt(1)>=cnt(0) cnt(1)>=cnt(0)
思路
考虑长度为
2
2
2 :
00
00
00 需要插入两个
1
1
1,
0110
0110
0110
01
,
10
01,10
01,10 ,不需要插入
考虑长度为
3
3
3:
100
,
001
100,001
100,001 显然退化成了长度为
2
2
2的
010
010
010,只需要再插入一个
1
1
1即可
0110
0110
0110
长度为 4 4 4 : 显然是不需要再考虑的了,可以分解成两个长度为 2 2 2的后面的同理
所以只需要处理 00 , 010 00,010 00,010即可
Mycode
void solve()
{
int n;cin>>n;
string s;cin>>s;
int sum = 0 ;
for(int i = 1;i= 0)
if(s[i] == '0' && s[i-1] == '1' && s[i-2] == '0') sum+=1;
}
cout>n;
if(n&1){
cout
关注
打赏
