2013-BIT程序设计 12.编程珠玑 -- dp
2013-10-18 23:29
232 查看
12.编程珠玑
你有一条项链,它由 N 个随机排列的红、白和蓝色的珠子组成(3<=N<=350)。下面的例子展示了两条 N=29 时的项链:1 2 1 2 r b b r b r r b r b b b r r b r r r w r b r w w b b r r b b b b b b r b r r b r b r r r b r r r r r r b r b r r r w Figure A Figure B r red bead b blue bead w white bead
项链上的第一个和第二个珠子已经在图中标出了。
图 A 也可以用一个由 b 和 r 组成的字符串直接表示,b 代表蓝色而 r 代表红色,如下所示:brbrrrbbbrrrrrbrrbbrbbbbrrrrb。
假设你想从项链的某处将它截断拉直;接着从一端向另外一端数收集同颜色的珠子,直到碰到一个不同颜色的珠子为止;然后再从另外一端做同样的操作。(一端收集的珠子颜色可以不同于另一端的。)
请想办法找到一个截断项链的位置,能够让我们尽量多地收集到同色的珠子。
例子
如图 A 中的项链,从第 9 和第 10 个或者第 24 和 第 25 个珠子中间截断,则我们可以收集到 8 个珠子。图 B 中的项链有白色的珠子,当遇到白色的珠子时,它既可以作为蓝色的珠子看待,也可以作为红色的珠子看待,由收集珠子时的需求决定。包含有白色珠子的项链则会由 r、b 和 w 字符组成的字符串来表示。
请编写一个程序计算从某条项链中能够收集到多少个珠子。
输入格式
第一行: N,项链上珠子的个数第二行:一个字符串,长度为 N,由 r、b 和 w字符组成
输入样例
29 wwwbbrwrbrbrrbrbrwrwwrbwrwrrb
输出格式
输出一行字符,它应该包含了计算出的结果。输出样例
11
分析:暴力的方法也是可以过得。
相关文章推荐
- 2013-BIT程序设计 1.球体问题 -- 数学题
- 2013-BIT程序设计 2.修剪草坪 -- 暴力
- 2013-BIT程序设计 3. 扫雷 -- 暴力
- 2013-BIT程序设计 4. 合并果子 -- 排序(哈夫曼树)
- 2013-BIT程序设计 5.传送带 -- 排序
- 2013-BIT程序设计 6.贪婪的你 -- 贪心
- 2013-BIT程序设计 7. 四则运算之加减法 -- 高精度加减
- 2013-BIT程序设计 8.逻辑行计数 -- 模拟
- 2013-BIT程序设计 9.琪露诺的完美算数教室——⑨的统计I -- 高精度
- 2013-BIT程序设计 10. 倒数问题 -- 高精度
- 2013-BIT程序设计 11.识别条形码 -- 模拟
- 2013-BIT程序设计 15.小浣熊干脆面
- 2013-BIT程序设计 14.古罗马的加法
- 2013-BIT程序设计 13. 真假桶装水 -- hash
- 清除代码异味
- 移动磁盘插入后自动弹出的代码——即禁止移动磁盘
- ubuntu安装jdk7
- vs2010C#项目-英文版打包中文框架出错的解决办法
- java的排序方法
- 使用Spring 的JDBC