码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • USACO 1.1.4Broken Necklace 破碎的项链


    题目描述:

    你有一条由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
                 图片 A                             图片  B
                     
                                 r 代表 红色的珠子      
                                 b 代表 蓝色的珠子   
                                 w 代表 白色的珠子
    

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

     brbrrrbbbrrrrrbrrbbrbbbbrrrrb
    

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

    白色珠子什么意思?

    在一些项链中还包括白色的珠子(如图片B) 所示。
    当收集珠子的时候,一个被遇到的白色珠子可以被当做红色也可以被当做蓝色。
    表现含有白珠项链的字符串将会包括三个符号 r , b 和 w 。
    写一个程序来确定从一条被给出的项链可以收集到的珠子最大数目。

    程序名称

    beads

    输入格式

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

    样例输入

    (文件 beads.in)

    29 
    wwwbbrwrbrbrrbrbrwrwwrbwrwrrb
    

    输出格式

    单独的一行 最大可能取得的珠子数

    样例输出

    (文件 beads.out)

    11

    时间限制: 1000ms
    空间限制: 128MB

    代码如下:
     

    1. #include <iostream>
    2. using namespace std;
    3. int main(){
    4. int n, max=0,a,x,j;
    5. string s;
    6. char c;
    7. cin>>n>>s;
    8. s=s+s;
    9. for(int i=0;i<n;i++){
    10. c=(char) s[i];
    11. if(c=='w'){
    12. x=0;
    13. }else{
    14. x=1;
    15. }
    16. j=i;
    17. a=0;
    18. while(x<=2){
    19. while(j<n+i&&(s[j]==c||s[j]=='w')){
    20. a++;
    21. j++;
    22. }
    23. x++;
    24. c=s[j];
    25. }
    26. if(a>max){
    27. max=a;
    28. }
    29. }
    30. cout<<max<<endl;
    31. return 0;
    32. }
  • 相关阅读:
    [自研开源] MyData 数据集成之数据过滤 v0.7.2
    查询优化_排序、分组优化
    C语言——八股文(笔试面试题)
    EasyCVR云端录像和设备录像如何区分?哪些接入协议支持设备录像回看?
    win11 笔记本在移动硬盘中安装linux(ubuntu22),安装NVIDIA驱动,安装anaconda,进行深度学习
    Redis 阻塞管理
    Jvm系列第一期——Java类加载机制
    (Mysql高级语句(进阶查询语句+数据库函数+连接查询))
    虚拟机ubuntu20.04连不上网
    MyBatisPlus(二十一)乐观锁
  • 原文地址:https://blog.csdn.net/Annconda/article/details/128155663
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号