【Broken Necklace】USACO第一次AC
2017-01-24 18:25
302 查看
题目很简单,代码也挺丑的,为了偷懒没有把两个循环写在一起。
过两天优化一下。
不过还是很开心。
过两天优化一下。
不过还是很开心。
/* ID:twoutop1 LANG: C++ TASK: beads */ #include <iostream> #include <cstdio> #include <string> #include <cstring> using namespace std; string b; int sum1[1000],sum2[1000],m,sums,maxn=-1000000,N; char t; int main(){ cin>>N>>b; const int len=b.length(); //cout<<len<<endl; b=b+b; for(int i=0;i<len;i++){ for(int j=i;j<i+len;j++){ if(b[i]!='w'){ if(b[j]==b[i]) sum1[i]++; if(b[j]=='w') sum1[i]++; if(b[j]!=b[i]&&b[j]!='w') break; } else { if(b[j]=='w') sum1[i]++; else{ if(m!=1){ if(b[j]=='r') t='r'; else t='b'; m=1; }} if(b[j]==t) sum1[i]++; if(b[j]!=t&&b[j]!='w') break; } } m=0; //cout<<sum1[i]<<" "; } //cout<<endl; for(int i=len-1;i<2*len-1;i++){ for(int j=i;j>0;j--){ if(b[i]!='w'){ if(b[j]==b[i]) sum2[i]++; if(b[j]=='w') sum2[i]++; if(b[j]!=b[i]&&b[j]!='w') break; } else { if(b[j]=='w') sum2[i]++; else{ if(m!=1){ if(b[j]=='r') t='r'; else t='b'; m=1; }} if(b[j]==t) sum2[i]++; if(b[j]!=t&&b[j]!='w') break; } } m=0; //cout<<sum2[i]<<" "; } //cout<<endl; //cout<<len<<endl; for(int s=0;s<len;s++){ sums=sum1[s]+sum2[len-1+s]; maxn=sums>maxn?sums:maxn; //cout<<maxn<<" "; } if(maxn>len) maxn=len; //cout<<len<<endl; cout<<maxn<<endl; return 0; }
相关文章推荐
- C++_USACO_Broken Necklace
- [USACO1.1]坏掉的项链Broken Necklace
- USACO 1.1 Broken Necklace
- AC日记——[USACO1.1]坏掉的项链Broken Necklace 洛谷 P1203
- USACO1.1.4 Broken Necklace(破碎的项链)
- USACO 1.1.4 Broken Necklace(模拟)
- [USACO] Broken Necklace
- |洛谷|模拟|P1203 [USACO1.1]坏掉的项链Broken Necklace
- USACO Broken Necklace
- Broken Necklace-----破碎的项链----USACO---C1S1
- USACO1.1.4--Broken Necklace
- USACO 1.1 Broken Necklace
- usaco 1.1 Broken Necklace
- USACO 1.1-Broken Necklace
- USACO 1.1 Broken Necklace(USACO官方)
- [USACO1.1]Broken Necklace C++(错误1)
- USACO 1.1 Broken Necklace (beads)
- USACO:Broken Necklace
- 【USACO1.1_4】★Broken Necklace 破碎的项链
- USACO1.1.4 - Broken Necklace