USACO-Section1.2 Broken Necklace (枚举法)
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 (枚举法)相关推荐
- USACO - Chapter1 Section 1.1 - Broken Necklace
Broken Necklace 题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 n=29 的二个例子: 第一和第二个珠子在 ...
- 洛谷 P1203 [USACO1.1]坏掉的项链Broken Necklace
P1203 [USACO1.1]坏掉的项链Broken Necklace 题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 ...
- 算法:枚举法---kotlin
枚举法:效率低,循环所有的情况,找到正确答案 用于解决数学问题,还是很简单的. 比如,奥数里面: 算 法 描 述 题X题=题题题题题题 其中 算法描述题每一个为一个数字,请写出正确的数字. ok,我们 ...
- c语言 3个人比饭量大小,OpenJudge计算概论-比饭量【枚举法、信息数字化】
/*====================================================================== 比饭量 总时间限制: 1000ms 内存限制: 655 ...
- 开灯变形问题(枚举法)
一.问题描述 一排有N盏灯.事先给定每盏灯的初始状态(开着或关着),你的任务是计算出至少要切换多少盏灯的状态(把开着的关掉,或把关着的打开),使得这N盏灯交替地打开和关闭. Input 输入文件中有多 ...
- c语言穷举算法 枚举法,c语言枚举法 穷举法 ppt课件
枚举法 穷举法 笨人之法 把所有可能的情况一一测试 筛选出符合条件的各种结果进行输出 分析 这是个不定方程 三元一次方程组问题 三个变量 两个方程 x y z 1005x 3y z 3 100设公鸡为 ...
- 00002-两数之和-leetcode-1.暴力法(枚举法),2.哈希表法,目前更新了枚举法
两数之和 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/two-sum 著作权归领扣网络所有.商业转载请联系官方授权,非商业转载请注明出处. ...
- c语言枚举法求满射函数,实变函数论讲义
第1章 集合与点集 实变函数论作为现代分析数学的基础,其知识结构是建立在集合论之上的.集合论产生于19世纪70年代,由德国数学家康托尔(Cantor)创立,它是整个现代数学的开端及逻辑基础.作为本科教 ...
- 字符串匹配——枚举法
字符串匹配--枚举法 给定主串T和模式串P,返回P在T中首次出现的位置,如果P不存在于T中,返回-1. 这样的问题就是字符串匹配问题,这里先给出枚举法的思想. 设主串T的长度为n,模式串P的长度为m. ...
- 什么叫枚举法_四年级:美妙数学之“巧用枚举法”1(0202四)
美妙数学天天见 每天进步多一点 亲爱的小朋友,你好!我是朱乐平数学名师工作站的赵桂华老师,来自重庆市沙坪坝区西永第一小学. 准备好了吗?我们开始吧! 聪明的小朋友,你愿意和天天一起动脑思考吗? 天天, ...
最新文章
- 解决windows文件在linux系统中显示乱码的问题
- java中并行_[JAVA] 12. Java中的并行Concurrency
- SVN中各种符号箭头含义
- update module
- C++智能指针(二)模拟实现三种智能指针
- 防灾科技学院计算机组成原理,防灾科技学院计算机组成原理复习材料1
- 2016年5月30日上午(传智Bootstrap笔记六(图片样式))
- spring事务和mysql的隔离级别
- 树莓派实现固定IP地址
- 【线性规划】投资的收益和风险
- 手机桌面上的计算机怎么删除,怎样删除桌面图标?删除桌面图标方法教学
- 【手写dubbo-2】超详细!netty实现群聊、私聊
- 关于App签名的步骤
- Excel表格的基本操作,看这里,excel表格数据汇总教程简单易学
- Unresolved reference(未解析的引用)——解决Pycharm无法导入包问题
- linux load average,Linux 平均负载 Load Average 详解
- 2022中国中医药产业展,山东医药保健展,济南药交会9月举办
- 文件复制软件评测:FastCopy、TeraCopy、ExtremeCopy、Supercopier
- linux 磁盘管理心得,Linux磁盘管理三板斧的使用心得
- 【SDK】The Agora RTM SDK及RTE 传输调用
热门文章
- python如何设置字体大小_[Python Basic]如何设置 Python 的运行环境
- 为啥我的Python这么慢 - 项查找 (二)
- 完美解决Mac电脑睡眠之后苹果电脑没有声音的方法
- 一本通 1064:奥运奖牌计数--AC
- 第44课 角谷猜想 动动脑 第2题 阅读程序写结果
- 1360:奇怪的电梯(lift) 《信息学奥赛一本通》
- 第十一届蓝桥杯省赛 C++组试题 第2题 求完数
- centos7 下 sudo yum install 报错镜像找不到
- springcloud的简单使用_微服务架构:初识Spring Cloud
- 【ES6(2015)】Generator