题目描述

你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的。 这里是 n=29 的二个例子:


第一和第二个珠子在图片中已经被作记号。
图片 A 中的项链可以用下面的字符串表示:
brbrrrbbbrrrrrbrrbbrbbbbrrrrb

假如你要在一些点打破项链,展开成一条直线,然后从一端开始收集同颜色的珠子直到你遇到一个不同的颜色珠子,在另一端做同样的事(颜色可能与在这之前收集的不同)。 确定应该在哪里打破项链来收集到最大数目的珠子。

例如,在图片 A 中的项链中,在珠子 9 和珠子 10 或珠子 24 和珠子 25 之间打断项链可以收集到8个珠子。
白色珠子什么意思?

在一些项链中还包括白色的珠子(如图片B) 所示。
当收集珠子的时候,一个被遇到的白色珠子可以被当做红色也可以被当做蓝色。

表现含有白珠项链的字符串将会包括三个符号 r , b 和 w 。
写一个程序来确定从一条被给出的项链可以收集到的珠子最大数目。

输入输出格式

输入格式:
第 1 行: N, 珠子的数目
第 2 行: 一串长度为N的字符串, 每个字符是 r , b 或 w。

输出格式:
输出一行一个整数,表示从给出的项链中可以收集到的珠子的最大数量。

输入输出样例

输入样例#1:
29
wwwbbrwrbrbrrbrbrwrwwrbwrwrrb

输出样例#1:
11

说明
题目翻译来自NOCOW。
USACO Training Section 1.1
.
.
.
.
.
.
.

分析

设置两个指针一个向左走一个向右走
要注意:遇到两个左右两个值都是w 的情况
.
.
.
.
.
.
.

程序:
#include<iostream>
using namespace std;
int main()
{int n;char a[1000];int b[10001];cin>>n;cin>>a;for (int j=n;j<n*2;j++)a[j]=a[j-n];int mx=0;for (int j=0;j<2*n;j++){int l=j,r=j+1;char la=a[l];char ra=a[r];if (a[l]=='w'){    la=a[l-1];}if (a[r]=='w'){ra=a[r-1];}int ans=0;while (l>=0){if (a[l]==la||a[l]=='w') ans++;else break;l--;}while (r<2*n){if (a[r]==ra||a[r]=='w') ans++;else break;r++;}mx=max(mx,ans);}if (mx>n) mx=n;          cout<<mx<<endl;return 0;
}

转载于:https://www.cnblogs.com/YYC-0304/p/9499964.html

[USACO1.1]坏掉的项链Broken Necklace相关推荐

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

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

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

    题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 n=29 的二个例子: 第一和第二个珠子在图片中已经被作记号. 图片 A ...

  3. AC日记——[USACO1.1]坏掉的项链Broken Necklace 洛谷 P1203

    题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 n=29 的二个例子: 第一和第二个珠子在图片中已经被作记号. 图片 A ...

  4. 洛谷 P1203 [USACO1.1]坏掉的项链Broken Necklace 动态规划

    题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 n=29 的二个例子: 第一和第二个珠子在图片中已经被作记号. 图片 A ...

  5. 洛谷 1203 [USACO1.1]坏掉的项链Broken Necklace

    题目: https://www.luogu.org/problem/show?pid=1203 标签是搜索和动态规划--: O(n^2)纯模拟; 这个题交了三遍才A: 思路: 记两个数组:Next和p ...

  6. 【洛谷】P1203 [USACO1.1]坏掉的项链Broken Necklace

    1. 前言 这是一道经典的dp题,时限:20min 环形dp通常转换成两个字符串拼接在一起从而覆盖住所有情况. 使用两次dp,分别求解分割点左侧和右侧的最大值.这种dp下再分左右区间的问题也有很多. ...

  7. USACO Training Section 1.1 坏掉的项链Broken Necklace

    题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 n=29 的二个例子: 第一和第二个珠子在图片中已经被作记号. 图片 A ...

  8. 坏掉的项链Broken Necklace

    题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 n=29 的二个例子: 第一和第二个珠子在图片中已经被作记号. 图片 A ...

  9. usaco1.1坏掉的项链

    题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 n=29 的二个例子: 第一和第二个珠子在图片中已经被作记号. 图片 A ...

最新文章

  1. 教程 | 算法太多挑花眼?教你如何选择正确的机器学习算法
  2. AOP之PostSharp初见-OnExceptionAspect
  3. 从浏览器输入URL到最终看到页面, 这其中经历了哪些过程 ?
  4. 基于智能手机Android平台音乐播放器全程开发实战
  5. Linux驱动(12)--LED驱动
  6. linux 防arp 带宽,linux下防arp
  7. 深度学习框架 各种模型下载集合 -- models list
  8. 【云原生】Kubernetes编排工具精讲
  9. python常用语音识别库_干货收藏 | Python语音识别终极指南
  10. validation注解
  11. 洛谷P1063 能量项链
  12. 西门子200系列PLC通信编程指令讲解
  13. jQuery 一次定时器_记一次腾讯微信面试
  14. 小白声纹识别(说话人识别)探索
  15. Ubuntu下搜狗输入法突然无法输入中文解决方案
  16. CentOS 安装 微软雅黑字体
  17. 小灰灰的APP学习之路(三)--创建一个简单的问答选择项目
  18. vue2+百度离线地图实现多车辆行驶动态轨迹
  19. 化工图纸中LISP_《化工工艺流程图与CAD二次开发应用》.pdf
  20. pycharm插件安装和常用的插件

热门文章

  1. 科大星云诗社动态20211108
  2. 云炬随笔20161224
  3. 当一个头文件引用另一个头文件中的类~
  4. c8800 mp4设置
  5. 常用:javascript字符串函数 收藏
  6. 数据库记录的添加、修改、删除(DataAdapter、DataTable 、DataRow )
  7. 为什么说线索二叉树是一种物理结构
  8. SQL注入之布尔盲注——sql-lab第八关
  9. python编程题3
  10. python保存几位小数 format