UsacoTraining Chapter1.2 Broken Necklace

来源:互联网 发布:linux signal 11 编辑:程序博客网 时间:2024/06/06 03:30

题目链接:http://train.usaco.org/usacoprob2?S=beads&a=d6rCU5tzF5q

使用deque,先将珠环展开成链,再头尾分别取。注意头或尾是白色的情况

/*ID: njxyjxc1TASK: beadsLANG: C++                 */#include<bits/stdc++.h>using namespace std;int n;string str;deque<char>q;int main(){ios::sync_with_stdio(0);freopen("beads.in","r",stdin);freopen("beads.out","w",stdout);cin>>n>>str;char col;int ans=-1,tmp;for(int i=0;i<str.size();i++){q.clear();for(int j=0;j<n;j++){q.push_back(str[(i+j)%n]);}col=q.back();tmp=0;while(!q.empty()){if(q.back()!=col&&col=='w'){col=q.back();tmp++;q.pop_back();continue;}if(q.back()==col||q.back()=='w'){q.pop_back();tmp++;}else{break;}}col=q.front();while(!q.empty()){if(q.front()!=col&&col=='w'){col=q.front();tmp++;q.pop_front();continue;}if(q.front()==col||q.front()=='w'){q.pop_front();tmp++;}else{break;}}ans=max(ans,tmp);}cout<<ans<<'\n';return 0;}//29//wwwbbrwrbrbrrbrbrwrwwrbwrwrrb



原创粉丝点击