断点是白色的情况在做题的时候完全没有想到呢...

看到了数据才发现这个问题$qwq$

 /*
ID:Starry21
LANG:C++
TASK:beads
*/
#include<iostream>
#include<string>
#include<cstdio>
#include<cstring>
#include<map>
using namespace std;
#define N 355
int n,ans;
char s[N*];
int l,r;
int f2(char c)
{
int res=;
while()
{
if(s[l+]==c||s[l+]=='w')
l++,res++;
else break;
if(l+==r) break;
}
return res;
}
int f1()
{
int res1=,res2=;
int ll=l;char c='b';
while()
{
if(s[l+]==c||s[l+]=='w')
l++,res1++;
else break;
if(l+==r) break;
}
c='r';
while()
{
if(s[ll+]==c||s[ll+]=='w')
ll++,res2++;
else break;
if(ll+==r) break;
}
if(res2>res1) l=ll;
return max(res1,res2);
}
int f4(char c)
{
int res=;
while()
{
if(s[r-]==c||s[r-]=='w')
r--,res++;
else break;
if(l+==r) break;
}
return res;
}
int f3()
{
int res1=,res2=;
int rr=r;char c='b';
while()
{
if(s[r-]==c||s[r-]=='w')
r--,res1++;
else break;
if(l+==r) break;
}
c='r';
while()
{
if(s[rr-]==c||s[rr-]=='w')
rr--,res2++;
else break;
if(l+==rr) break;
}
if(res2>res1) r=rr;
return max(res1,res2);
}
int main()
{
//freopen("beads.in","r",stdin);
//freopen("beads.out","w",stdout);
scanf("%d",&n);
scanf("%s",s+);
for(int i=;i<=n;i++)
s[i+n]=s[i];
for(int i=;i<=n;i++)
{
l=i,r=i+n-;
int cnt1=,cnt2=;
char c=s[l];
if(c!='w') cnt1+=f2(c);
else cnt1+=f1();
if(l+==r)
{
ans=max(ans,cnt1+/*还要加上端点r*/);
continue;
}
//----
c=s[r];
if(c!='w') cnt1+=f4(c);
else cnt1+=f3();
ans=max(ans,cnt1+cnt2);
}
printf("%d\n",ans);
return ;
}
/*
77
rwrwrwrwrwrwrwrwrwrwrwrwbwrwbwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwr
*/

USACO 1.2 Broken Necklace的更多相关文章

  1. USACO section1.1 Broken Necklace

    /* ID: vincent63 LANG: C TASK: beads */ #include <stdio.h> #include<stdlib.h> #include&l ...

  2. USACO Section1.1 Broken Necklace 解题报告

    beads解题报告 —— icedream61 博客园(转载请注明出处)---------------------------------------------------------------- ...

  3. USACO Section1.1PROB Broken Necklace

    有点麻烦的一道模拟(官方题解好像有复杂度为$O(n)$DP的姿势?,感觉好烦,以后再细看~ 在一些细节上调试了很久很久,囧RZ /* ID: jusonal1 PROG: beads LANG: C+ ...

  4. [USACO1.1.4]坏掉的项链Broken Necklace

    P1203 [USACO1.1]坏掉的项链Broken Necklace 标签 搜索/枚举 USACO 难度 普及- 题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N&l ...

  5. 【P1203】 【USACO1.1】坏掉的项链Broken Necklace

    P1203 [USACO1.1]坏掉的项链Broken Necklace 题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 ...

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

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

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

    坏掉的项链Broken Necklace 难度:★ Code: #include <iostream> #include <cstdio> #include <cstri ...

  8. 题解 P1203 【[USACO1.1]坏掉的项链Broken Necklace】

    [USACO1.1]坏掉的项链Broken Necklace 22892 破碎的项链 方法一:很容易想到枚举断点,再分别两头找,但是要注意很多细节 #include<iostream> # ...

  9. P1203 [USACO1.1]Broken Necklace(模拟-枚举)

    P1203 [USACO1.1]坏掉的项链Broken Necklace 题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 ...

随机推荐

  1. 原生XMLHttpRequest (ajax)的简单使用

    示例: 第一步:创建XMLHttpRequest对象 var httpxml ; if(window.XMLHttpRequest){ //大多数浏览器 httpxml = new XMLHttpRe ...

  2. web form 服务器控件表单验证

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ValidationDemo ...

  3. [2019牛客多校第二场][G. Polygons]

    题目链接:https://ac.nowcoder.com/acm/contest/882/G 题目大意:有\(n\)条直线将平面分成若干个区域,要求处理\(m\)次询问:求第\(q\)大的区域面积.保 ...

  4. git + idea 配置 github设置ssh免登陆方式提交拉取代码

    1.下载安装git,官网:https://git-scm.com/download/win  安装默认配置安装 git2.20版本地址百度网盘地址: 链接:https://pan.baidu.com/ ...

  5. WebUI自动化之Java语言提高

    单独写一个函数和把函数写在类中的区别: 单独写一个函数,函数只能完成一个功能,团队开发.让第三方使用时比较麻烦: 项目管理和构建自动化工具Maven:

  6. learning gcc #pragma once

    referenc: https://zh.wikipedia.org/wiki/Pragma_once 在C和C++编程语言中,#pragma once是一个非标准但是被广泛支持的前置处理符号, 会让 ...

  7. python 获取数字在内存的内容

    #coding=utf- from struct import pack,unpack byte=pack('f',1.5) print(byte) print([i for i in byte]) ...

  8. 焦虑的 BAT、不安的编程语言,揭秘程序员技术圈生存现状!

    [程序人生编者按]在迭代不休的技术圈中,仅在过去的一个月期间,我们见证了有史以来第一张黑洞照片的诞生:经历了为让人义愤填膺的 996:思考了作为程序员的年龄之槛:膜拜了技术大神的成长历程:追逐了如编程 ...

  9. 2 ArrayList 详解

    List 是有序.可重复的容器.List中每个元素都有索引标记,可以根据元素的索引标记访问元素,从而精确控制这些元素. List 接口常用的实现类:ArrayList.LinkedList.Vecto ...

  10. 之前有面试到两个日期的大小比较方式,现在整理一下几种方法。   例子:   String beginTime=new String("2017-06-09 10:22:22");     String endTime=new String("2017-05-08 11:22:22");  1  直接用Date自带方法before()和after()比较 SimpleDateFormat d

    各种数据类型(日期/时间.integer.floating point和numeric)转换成格式化的字符串以及反过来从格式化的字符串转换成指定的数据类型.下面列出了这些函数,它们都遵循一个公共的调用 ...