题目描述:

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

1 2                               1 2r b b r                           b r r br         b                       b         br           r                     b           rr             r                   w             rb               r                 w               wb                 b               r                 rb                 b               b                 bb                 b               r                 br               r                 b               rb             r                   r             rb           r                     r           rr       r                         r       br b r                             r r w图片 A                        图片  Br 代表 红色的珠子      b 代表 蓝色的珠子   w 代表 白色的珠子

第一和第二个珠子在图片中已经被作记号。

图片 A 中的项链可以用下面的字符串表示:
brbrrrbbbrrrrrbrrbbrbbbbrrrrb .

假如你要在一些点打破项链,展开成一条直线,然后从一端开始收集同颜色的珠子直到你遇到一个不同的颜色珠子,在另一端做同样的事。(颜色可能与在这之前收集的不同) 确定应该在哪里打破项链来收集到最大多数的数目的子。 Example 举例来说,在图片 A 中的项链,可以收集到8个珠子,在珠子 9 和珠子 10 或珠子 24 和珠子 25 之间打断项链。 在一些项链中,包括白色的珠子如图片 B 所示。 当收集珠子的时候,一个被遇到的白色珠子可以被当做红色也可以被当做蓝色。 表现项链的字符串将会包括三符号 r , b 和 w 。 写一个程序来确定从一条被供应的项链最大可以被收集珠子数目。

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

输出
单独的一行包含从被供应的项链可以被收集的珠子数目的最大值。

样例输入
29
wwwbbrwrbrbrrbrbrwrwwrbwrwrrb

样例输出
11

这道题目其实就是一道模拟的题目,用最最简单的办法就是把s串变为s+s+s,这样子方便首尾连应,然后判断一下当前s[i]和s[j]是否相等,或者s[j]='w'的时候则可以继续下去,这里有个地方需要注意的是:一个被遇到的白色珠子可以被当做红色也可以被当做蓝色。这里强调了是被遇到,也就是说当前面全是w,而现在忽然出现了一个'b','r'都是不行的。也可以说成当当前第i个字符是'w'的时候无需模拟下去(除针对数据——如全是'w')。


代码:

varn,i,j,ans,max:Longint;s:ansistring;
beginreadln(n);readln(s);s:=s+s+s;for i:=n+1 to 2*n dobeginj:=i-1;while ((s[j]='w') or  (s[j]=s[i]))  and (j>0) do dec(j);ans:=i-j;j:=i+1;while ((s[j]='w') or (s[j]=s[i+1])) and (j<3*n) do inc(j);if ans+j-i-1>max then max:=ans+j-i-1;if ans>n then break;end;if max>n then writeln(n) else writeln(max);
end.

【USACO题库】1.1.4 Broken Necklace破碎的项链相关推荐

  1. 【USACO题库】3.4.4 Raucous Rockers“破锣摇滚”乐队 题解

    [USACO题库]3.4.4 Raucous Rockers"破锣摇滚"乐队  题解 你刚刚继承了流行的"破锣摇滚"乐队录制的尚未发表的N(1 <= N ...

  2. 【USACO题库】1.2.1 Milking Cows挤牛奶

    一开始认为过不了,后来交就AC了. 1007. [USACO题库]1.2.1 Milking Cows挤牛奶 (File IO): input:milk.in output:milk.out 题目描述 ...

  3. 【USACO题库】1.4.2 The Clocks时钟.TJ

    标题的简介: [USACO题库]1.4.2 The Clocks--Tj https://jzoj.net/junior/#contest/show/1232/11(下文题目描述还是原地址清楚) 考虑 ...

  4. Broken Necklace破碎的项链

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

  5. 最简单的USACO,没有之一:【USACO题库】1.3.4 Prime Cryptarithm牛式

    欢迎收看: 保障电脑安全 拒绝编译错误 DEV-C++题解 今天来看一个炒鸡简单的USACO,没有之一. 题目描述 下面是一个乘法竖式,如果用我们给定的那几个数字来取代*,可以使式子成立的话,我们就叫 ...

  6. 【USACO题库】 动态规划 汇总(普及-/普及)

    数据结构提高是够用了=-=虽然树状数组没学 但是其他类问题只能打到普及 普及啊啊啊!!! 而且这边省选组都是什么仙人掌啊,什么系什么点对啊...感觉数据结构并没有什么用 (实际上很有用但我不会用就是了 ...

  7. 【USACO题库】3.2.4 Feed Ratios饲料调配

    这一题,有许多的细节要注意一下!特别是循环中的判断!先看一下代码: #include<cstdio> using namespace std; int a[4][4]; int main( ...

  8. 【USACO题库】1.5.4 Checker Challenge跳棋的挑战

    题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行,每列,每条对角线(包括两条主对角线的所有对角线)上都至多有一个棋子. 列号 1 2 3 4 5 6 --------- ...

  9. 【图论】【最短路】【SPFA】【USACO题库】2.4.4 Bessie Come Home回家(jzoj 1274)

    Bessie Come Home回家 题目大意: 有n条路连接着一些牧场,每个牧场由'a-z'(没羊)和'A-Y'(有一头羊),问哪个有羊的牧场离'Z'最近 INPUT FORMAT 第 1 行: 整 ...

最新文章

  1. python 面板数据分析_科学网—Python中的结构化数据分析利器-Pandas简介 - 郑俊娟的博文...
  2. java string.indexof(string)_Java StringBuffer indexOf()方法
  3. 不信iphone5 只要GALAXY S II珠峰仍有信号
  4. 提莫隐身+机器人能钩_航空工业官宣全新歼20正式亮相,可以隐身的变形金刚
  5. Android开发之百度地图定位以及简单覆盖物的实现
  6. 怎么ie取消要打开或保存来自_取消认证后,发票抵扣就这么简单!
  7. 达摩院python教程视频_Python400集大型视频,无偿分享,从正确方向学习python,全套python入门完整视频...
  8. JBoss 系列十四:JBoss7/WildFly如何加载外部的文件或properties文件
  9. (4) XOS 源码详解: os_s_xxxx.s 汇编代码的 堆栈空间定义,比较简洁的方式
  10. vue 子页面调用父页面常用方式
  11. ORA-28000 the account is locked的解决办法
  12. 驱动精灵w8ndows xp sp2,爱普生Epson TM-L60II打印机驱动官方正式版下载,适用于winxp,winvista,win7,win8,win10-驱动精灵...
  13. Elasticsearch 之(6)kibana嵌套聚合,下钻分析,聚合分析
  14. 【Django下载文件-Kml文件下载】
  15. php-opencv身份证识别,python opencv实现证件照换底功能
  16. 5.[STM32]动动小手,自己制作做一个自动浇花系统吧
  17. java中三个等号_Java细节:单等于号、双等于号、三等于号的作用及双等于号和equls的区别...
  18. RVIZ 的菜单背景变成黑色
  19. 5G进度卡关 联发科应如何解困?
  20. JS监听页面元素删除子节点、增加子节点、修改子节点的内容

热门文章

  1. HTML的JS调用代码实现,html调用js的常见代码
  2. 扫雷之三极管开关电路
  3. centos里的mysql密码重置
  4. 虚幻4设置音效空间衰减效果
  5. 设计模式のInterpreter Patern(解释器模式)----行为模式
  6. STM32上可用的的SM 2 3 4国密算法
  7. 企业用户混合云组网的新方式——SD-WAN
  8. 如何用ntp实现服务器时间同步!!!
  9. js ajax contenttype,ajax中设置contentType: application/json的作用(图文教程)
  10. 【LISP】Pascal Costanza:极端片面的Lisp介绍