码迷,mamicode.com
首页 > 其他好文 > 详细

P1203 [USACO1.1]坏掉的项链Broken Necklace

时间:2017-10-17 10:08:14      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:class   pre   nec   ==   很多   --   return   space   c++   

P1203 [USACO1.1]坏掉的项链Broken Necklace
不错的断环为链的模拟题,开成三倍,有很多细节要考虑,比如总长度要<=n,开头第一个是w等等。

#include<bits/stdc++.h>
using namespace std;
char c[10000];
int n;
int ans=-2147483647;

int r(int x)
{
    int r=x;
    char t;
    while(c[r]==w)
    r++;
    t=c[r];
    while(c[r+1]==t||c[r+1]==w)
    r++;
    return (r-x+1>n?n:r-x+1);
}   

int l(int x)
{
    int l=x;
    char t;
    while(c[l]==w)
    l--;
    t=c[l];
    while(c[l-1]==t||c[l-1]==w)
    l--;
    return (x-l+1>n?n:x-l+1);
}

int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>c[i+n];
        c[i]=c[i+n];
        c[i+2*n]=c[i+n];
    }
     for(int i=n;i<2*n;i++)
       ans=max(ans,l(i)+r(i+1));
       cout<<min(ans,n);    
  return 0;
}

 

P1203 [USACO1.1]坏掉的项链Broken Necklace

标签:class   pre   nec   ==   很多   --   return   space   c++   

原文地址:http://www.cnblogs.com/war1111/p/7679823.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!