2013-BIT程序设计 12.编程珠玑 -- dp

原创 2013年10月18日 23:29:47

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


分析:暴力的方法也是可以过得。


BITCS2016程序设计 | 12. 编程珠玑

12.编程珠玑 成绩 10 开启时间 2016年09月6日 星期二 11:00 折扣 0.8 折扣时间 2016年09月12日 星期一 23:55 允许迟交 否 ...
  • iLOVEJohnny
  • iLOVEJohnny
  • 2016年10月20日 19:48
  • 720

2016程序设计实习期末考试07题上机(dp)

2016程序设计实习期末考试07题上机(dp)
  • PKU_ZZY
  • PKU_ZZY
  • 2016年06月26日 15:21
  • 953

ACM_程序设计竞赛:DP:01背包

01背包 设 n个重量和价值为wiw_i和viv_i的物品,从中选择总重量不超过W的物品,求挑选方案中价值总和最大 输入: n=4 (w, v) = {(2,3),(1,2),(3,4),(2,...
  • mijian1207mijian
  • mijian1207mijian
  • 2016年05月05日 14:35
  • 532

网教12.编程珠玑

你有一条项链,它由 N 个随机排列的红、白和蓝色的珠子组成(3 1 2 1 2 r b ...
  • wehan
  • wehan
  • 2016年09月10日 14:24
  • 237

《编程珠玑》---笔记。浏览此文,一窥此书。

第一章: 磁盘排序:对于一个提出的问题,不要未经思考就直接给出答案。要先深入研究问题,搞清楚这个问题的特点,根据这个特点,可能有更好的解决方案。   比如:文中:最初的需求只是“我如何对磁盘文件排序”...
  • yang_yulei
  • yang_yulei
  • 2014年06月30日 23:53
  • 10119

《编程珠玑》高清pdf版

下载地址:网盘下载 作者简介 编辑 Jon Bentley是位于新泽西州Murray Hill的朗讯贝尔实验室计算机科学研究中心的技术委员会委员,Jon自1998...
  • cf406061841
  • cf406061841
  • 2017年05月27日 18:57
  • 2594

编程珠玑 第二版 第三章 习题答案

Exercise 1、在网上看到很多人都是先用数组来
  • spencerzou
  • spencerzou
  • 2014年05月27日 17:39
  • 1317

2013-BIT程序设计 5.传送带 -- 排序

5.传送带 小明的飞机快要赶不上了! 幸好大厅的路上有一些传送带。每个传送带都有一定的速度,传送带之间没有重叠。 小明自己行走的速度为w,如果传送带的速度为v的话,在传送带上走的速度...
  • u010276926
  • u010276926
  • 2013年10月18日 21:59
  • 3509

2013-BIT程序设计 3. 扫雷 -- 暴力

3. 扫雷   背景 你玩儿过扫雷游戏吧?有个操作系统中带了这个小游戏,那个系统叫什么来着?;-)在游戏中要想过关,就必须要在一个 NxM 的区域上找出所有的地雷。游戏过程中,计算机...
  • u010276926
  • u010276926
  • 2013年10月18日 21:29
  • 1627

编程珠玑之第三章习题2

问题描述: 问题解析: 1、如果咨询研究其规律,会发现其输入的km的a的值由上面公式就可以递推到! 2、研究其性质,会发现a[1] = c[k+1]是永远不会变得,那么由a[1]就可以向后推得知a...
  • JohnnyHu90
  • JohnnyHu90
  • 2015年01月15日 23:54
  • 1040
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2013-BIT程序设计 12.编程珠玑 -- dp
举报原因:
原因补充:

(最多只允许输入30个字)