2018-3-25

昨天晚上有人评论了我的博客,有点小激动,今天就把自己之前写的博客整理了一下,发现自己USACO里面有一道题目没有写博客…于是乎把它给补上。

题目大意:

给你一串项链,白色,蓝色,红色,白色可以替换为任意颜色,从某个地方,
剪短该项链,问你从两边所能得到的珠子和的最大值为多少,每一边得到的
珠子数为到第一个不同颜色的珠子截止(w色可以进行替换)。

我们最容易想到的,就是枚举从每一个地方剪断所能获得的两边的和,然后求得最大值。需要我们注意的就是该题目给我们的是一个环。

/*
ID: 18795871
PROG: beads
LANG: C++
*/
#include<iostream>
#include<fstream>
using namespace std;ifstream fin("beads.in");
ofstream fout("beads.out");const int N = 350;
char x[2*N+10],y[2*N+10];
int lef[N+10],rig[N+10];
int n;int main(){int i,j;while (fin>>n){fin>>x;for (i=0;i<n;i++){x[i+n]=x[i];}for (i=0;i<2*n;i++){y[2*n-i-1]=x[i];}for (int i=0;i<=n;i++) lef[i]=1;for (int i=0;i<=n;i++) rig[i]=1;int cnt; for (i=0;i<=n;i++){char f=x[i];for (j=i+1;j<2*n;j++){if (x[j]==f){lef[i]++;}else{if (f=='w'){f=x[j];lef[i]++;}else if (x[j]=='w'){lef[i]++;}else{break;}}}}for (i=0;i<=n;i++){char f=y[i];for (j=i+1;j<2*n;j++){if (y[j]==f){rig[i]++;}else{if (f=='w'){f=y[j];rig[i]++;}else if (y[j]=='w'){rig[i]++;}else{break;}}}}int ma=0;for (int i=0;i<=n;i++){ma=max(ma,lef[i]+rig[n-i]);}if (ma>n) fout<<n<<endl;else fout<<ma<<endl;}return 0;
}

USACO-Section1.2 Broken Necklace (枚举法)相关推荐

  1. USACO - Chapter1 Section 1.1 - Broken Necklace

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

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

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

  3. 算法:枚举法---kotlin

    枚举法:效率低,循环所有的情况,找到正确答案 用于解决数学问题,还是很简单的. 比如,奥数里面: 算 法 描 述 题X题=题题题题题题 其中 算法描述题每一个为一个数字,请写出正确的数字. ok,我们 ...

  4. c语言 3个人比饭量大小,OpenJudge计算概论-比饭量【枚举法、信息数字化】

    /*====================================================================== 比饭量 总时间限制: 1000ms 内存限制: 655 ...

  5. 开灯变形问题(枚举法)

    一.问题描述 一排有N盏灯.事先给定每盏灯的初始状态(开着或关着),你的任务是计算出至少要切换多少盏灯的状态(把开着的关掉,或把关着的打开),使得这N盏灯交替地打开和关闭. Input 输入文件中有多 ...

  6. c语言穷举算法 枚举法,c语言枚举法 穷举法 ppt课件

    枚举法 穷举法 笨人之法 把所有可能的情况一一测试 筛选出符合条件的各种结果进行输出 分析 这是个不定方程 三元一次方程组问题 三个变量 两个方程 x y z 1005x 3y z 3 100设公鸡为 ...

  7. 00002-两数之和-leetcode-1.暴力法(枚举法),2.哈希表法,目前更新了枚举法

    两数之和 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/two-sum 著作权归领扣网络所有.商业转载请联系官方授权,非商业转载请注明出处. ...

  8. c语言枚举法求满射函数,实变函数论讲义

    第1章 集合与点集 实变函数论作为现代分析数学的基础,其知识结构是建立在集合论之上的.集合论产生于19世纪70年代,由德国数学家康托尔(Cantor)创立,它是整个现代数学的开端及逻辑基础.作为本科教 ...

  9. 字符串匹配——枚举法

    字符串匹配--枚举法 给定主串T和模式串P,返回P在T中首次出现的位置,如果P不存在于T中,返回-1. 这样的问题就是字符串匹配问题,这里先给出枚举法的思想. 设主串T的长度为n,模式串P的长度为m. ...

  10. 什么叫枚举法_四年级:美妙数学之“巧用枚举法”1(0202四)

    美妙数学天天见 每天进步多一点 亲爱的小朋友,你好!我是朱乐平数学名师工作站的赵桂华老师,来自重庆市沙坪坝区西永第一小学. 准备好了吗?我们开始吧! 聪明的小朋友,你愿意和天天一起动脑思考吗? 天天, ...

最新文章

  1. 解决windows文件在linux系统中显示乱码的问题
  2. java中并行_[JAVA] 12. Java中的并行Concurrency
  3. SVN中各种符号箭头含义
  4. update module
  5. C++智能指针(二)模拟实现三种智能指针
  6. 防灾科技学院计算机组成原理,防灾科技学院计算机组成原理复习材料1
  7. 2016年5月30日上午(传智Bootstrap笔记六(图片样式))
  8. spring事务和mysql的隔离级别
  9. 树莓派实现固定IP地址
  10. 【线性规划】投资的收益和风险
  11. 手机桌面上的计算机怎么删除,怎样删除桌面图标?删除桌面图标方法教学
  12. 【手写dubbo-2】超详细!netty实现群聊、私聊
  13. 关于App签名的步骤
  14. Excel表格的基本操作,看这里,excel表格数据汇总教程简单易学
  15. Unresolved reference(未解析的引用)——解决Pycharm无法导入包问题
  16. linux load average,Linux 平均负载 Load Average 详解
  17. 2022中国中医药产业展,山东医药保健展,济南药交会9月举办
  18. 文件复制软件评测:FastCopy、TeraCopy、ExtremeCopy、Supercopier
  19. linux 磁盘管理心得,Linux磁盘管理三板斧的使用心得
  20. 【SDK】The Agora RTM SDK及RTE 传输调用

热门文章

  1. python如何设置字体大小_[Python Basic]如何设置 Python 的运行环境
  2. 为啥我的Python这么慢 - 项查找 (二)
  3. 完美解决Mac电脑睡眠之后苹果电脑没有声音的方法
  4. 一本通 1064:奥运奖牌计数--AC
  5. 第44课 角谷猜想 动动脑 第2题 阅读程序写结果
  6. 1360:奇怪的电梯(lift) 《信息学奥赛一本通》
  7. 第十一届蓝桥杯省赛 C++组试题 第2题 求完数
  8. centos7 下 sudo yum install 报错镜像找不到
  9. springcloud的简单使用_微服务架构:初识Spring Cloud
  10. 【ES6(2015)】Generator