自己的usaco代码---PROB Broken Necklace
2013-08-14 14:25
330 查看
原创代码
仅供参考
欢迎评论O(∩_∩)O~
仅供参考
欢迎评论O(∩_∩)O~
/* ID: 输你自己的 PROG: beads LANG: C++ */ #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> #include<cmath> using namespace std; int n,f[400],ans=0; char a[1200]; int main() { memset(a,'#',sizeof(a)); freopen("beads.in","r",stdin); freopen("beads.out","w",stdout); cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=n+1;i<=n+n;i++) a[i]=a[i+n]=a[i-n]; char x='w'; for(int i=1+n;i<=n*2;i++) { int k=i; f[i-n]=2; x='w'; while((a[++k]==a[k-1]||a[k]=='w'||a[k-1]=='w'||a[k]==x)&&k<n+i-1){ if(a[k-1]=='w'&&a[k]!='w'&&x!='w'&&a[k]!=x) break; f[i-n]++; if(a[k]=='w') x=a[k-1]; if(a[k-1]=='w'&&x=='w'&&a[k]!=x) x=a[k]; } int t=k-n*2; x='w'; k=i-1; while((a[--k]==a[k+1]||a[k]=='w'||a[k+1]=='w'||a[k]==x)&&k>n+t){ if(a[k+1]=='w'&&a[k]!='w'&&a[k]!=x&&x!='w') break; f[i-n]++; if(a[k]=='w'&&a[k+1]!='w') x=a[k+1]; if(a[k+1]=='w'&&a[k]==x&&x!='w') x=a[k]; } } for(int i=1;i<=n;i++) ans=max(ans,f[i]); cout<<ans<<endl; return 0; }
相关文章推荐
- 【USACO】PROB Broken Necklace
- 自己的usaco代码---PROB Prime Cryptarithm
- 自己的usaco代码---PROB Friday the Thirteenth
- 自己的usaco代码---PROB Calf Flac
- USACO TRAINING - PROB Broken Necklace
- 自己的usaco代码---PROB Name That Number
- 自己的usaco代码---PROB Palindromic Squares
- 自己的usaco代码---PROB Dual Palindromes
- 自己的usaco代码---PROB Barn Repair
- USACO1.1.4 Broken Necklace(破碎的项链)
- USACO_Broken Necklace解题报告
- 【USACO题库】1.1.4 Broken Necklace破碎的项链
- USACO1.1.4 Broken Necklace (beads)
- USACO 1.1.4 - Broken Necklace(DP)
- USACO 1.1 Broken Necklace
- USACO1.1.4 Broken Necklace (beads)
- usaco Section1.1 Broken Necklace
- usaco 1-1-4 Broken Necklace
- USACO-Section1.1 Broken Necklace [动态规划]
- [USACO] Broken Necklace