broken necklaces破碎的项链

来源:互联网 发布:启信宝的数据可信度 编辑:程序博客网 时间:2024/04/28 12:22
/*
ID: cjh12851 
LANG: C++
TASK: beads
*/
#include<iostream>
#include<cstdio>
#include<queue>
#include<string>
using namespace std;
int i,j,k,a,b,c,n,maxx=0;
int x,x1,x2,T1=1,T2=1,l1,l2;
string s;
char d;
int main()
    {
    freopen("beads.in","r",stdin);
    freopen("beads.out","w",stdout);//格式    
    cin>>n;
    cin>>s;
    s=s+s;
    a=1;b=0;d=s[0];
    for(i=1;i<2*n;i++ ){
    if(s[i]==d||s[i]=='w')a++;//若s[0]=w,亦可行 
    else{
      d=s[i];
    if(a+b>maxx)maxx=a+b;
    b=a; 
    a=1;
for(j=i-1;s[j]=='w';j--){
a++;b--;//往回查找,并保证w属于后一串珠子;
}
}
}
if(maxx==0||maxx>n)maxx=n;//若无断点,则maxx=0;
cout<<maxx<<endl;
    return 0;
    }

-----------------------------------------------------------------本题的方法为断点枚举。

0 0
原创粉丝点击