题目大意:

项链最长的纯色连续段,“w”即white白色珠子,可任意涂为红或蓝,“r” “b”即红 蓝。

Input

Line 1:  N, the number of beads

Line 2:  a string of N characters, each of which is rb, or w

Output

A single line containing the maximum of number of beads that can be collected from the supplied necklace.

Sample Input

29
wwwbbrwrbrbrrbrbrwrwwrbwrwrrb

Sample Output

11

DP算法

*先复制相同的一段 拼接在一起 以模拟项链的环状

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. typedef struct node
  4. {
  5. int lr,lb,rr,rb; ///左右的red blue珠数量
  6. }beans;
  7. int main()
  8. {
  9. beans bean[];
  10. char br[],brr[];
  11. int n; scanf("%d%s",&n,br);
  12. strcpy(brr,br);
  13. strcat(br,brr);
  14.  
  15. bean[].lr=bean[].lb=;
  16. for(int i=;i<=*n;i++)
  17. {
  18. if(br[i-]=='r')
  19. bean[i].lr=bean[i-].lr+,
  20. bean[i].lb=;
  21. else if(br[i-]=='b')
  22. bean[i].lb=bean[i-].lb+,
  23. bean[i].lr=;
  24. else
  25. bean[i].lb=bean[i-].lb+,
  26. bean[i].lr=bean[i-].lr+;
  27. }
  28.  
  29. bean[*n].rr=bean[*n].rb=;
  30. for(int i=*n-;i>=;i--)
  31. {
  32. if(br[i]=='r')
  33. bean[i].rr=bean[i+].rr+,
  34. bean[i].rb=;
  35. else if(br[i]=='b')
  36. bean[i].rb=bean[i+].rb+,
  37. bean[i].rr=;
  38. else
  39. bean[i].rb=bean[i+].rb+,
  40. bean[i].rr=bean[i+].rr+;
  41. }
  42.  
  43. int m=;
  44. for(int i=;i<*n;i++)
  45. m=max(m,max(bean[i].lr,bean[i].lb)+max(bean[i].rr,bean[i].rb));
  46. if(m>n) m=n;
  47. printf("%d\n",m);
  48. return ;
  49. }

USACO2012 Broken necklace /// DP oj10103的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

  7. USACO section1.1 Broken Necklace

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

  8. 【USACO1.1】Broken Necklace

    题意 一个环形项链,有rbw三种珠子,r代表red,b代表blue,w代表white,从任意一个位置断开,两端分别取珠子,同一端取的珠子要相同颜色,w可以染成想要的颜色,即既可当作r也可以当作b,求最 ...

  9. USACO Section 1.1 Broken Necklace 解题报告

    题目 题目描述 有一串项链,它是由红蓝白三种颜色的珠子组成的,b代表蓝色,w代表白色,r代表红色,当它完整的时候是一个闭合的环形.现在它在某一个节点断裂了,之前的环形也随之变成了直线形.从两端开始收集 ...

随机推荐

  1. mysql性能分析与故障分析

    性能指标以及分析点:QPS,磁盘IO,cpu以及内存使用状况,连接数,慢查询,阻塞和锁等 qps的统计方法 ##使用方式 ,bash dba_qps.sh port(实例端口号) ## 脚本名 dba ...

  2. ASP.NET Core学习——2

    Application Startup ASP.NET Core为应用程序提供了处理每个请求的完整控制.Startup类是应用程程的入口(entry point),这个类可以设置配置(configur ...

  3. CSS:CSS 提示工具(Tooltip)

    ylbtech-CSS:CSS 提示工具(Tooltip) 1.返回顶部 1. CSS 提示工具(Tooltip) 本文我们为大家介绍如何使用 HTML 与 CSS 来创建提示工具. 提示工具在鼠标移 ...

  4. 使用uc进行手机页面调试

    最近使用uc浏览器的时候发现了,一个有趣的现象,就是uc会处理h5web app为全屏,并屏蔽一些手机上的操作,这样就会使web app更加接近本地应用.所以就研究 了一下uc的手机调试. 1.准备工 ...

  5. 某个ip段可以访问mysql

    我们先创建一个测试用户LimitIP,只允许192.168段的IP地址访问,具体权限如下所示: mysql> GRANT SELECT ON MyDB.* TO LimitIP@'192.168 ...

  6. 第四记 Java异常

    Java异常结构图 Java所有异常都是从Throwable继承而来,Throwable有两个子类,Error与Exception. Error是错误,对于所有的编译时期的错误以及系统错误都是通过Er ...

  7. el-scrollbar 如何去掉横线滚动条?

    1. el-scrollbar style="height:100%" 2. 不要在scoped私有变量添加 .el-scrollbar__wrap{ overflow-x: hi ...

  8. 响应断言和json asstion

    1.要勾选Additionallly  assert value才可以输入下面的预期结果哦

  9. 从零开始搭建系统1.2——Nginx安装及配置

    一.安装准备 首先由于nginx的一些模块依赖一些lib库,所以在安装nginx之前,必须先安装这些lib库,这些依赖库主要有g++.gcc.openssl-devel.pcre-devel和zlib ...

  10. 【学术篇】luogu3768 简单的数学题(纯口胡无代码)

    真是一道"简单"的数学题呢~ 反演题, 化式子. \[ ans=\sum_{i=1}^n\sum_{j=1}^nijgcd(i,j) \\ =\sum_{i=1}^n\sum_{j ...