首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
「USACO1.1」Broken Necklace
2024-10-21
USACO Section 1.1 Broken Necklace 解题报告
题目 题目描述 有一串项链,它是由红蓝白三种颜色的珠子组成的,b代表蓝色,w代表白色,r代表红色,当它完整的时候是一个闭合的环形.现在它在某一个节点断裂了,之前的环形也随之变成了直线形.从两端开始收集这些珠子,收集的规则是只能收集与端点珠子相同颜色的,且是连在一起的珠子.白色的珠子可以染色成为红色的或者是蓝色的,也就是说白色的珠子可以看成是蓝色的或者是红色的.例如我现在有一串断裂的项链,它的珠子排列成下面的这种方式: bwwbrbbrwwr 当我从左边开始收集珠子的时候,我只能收集到bwwb,从
「日常训练」「小专题·USACO」 Broken Necklace(1-2)
题意 圆形链条,打断一处可以形成一条链.问在哪个地方开始打断,能够形成最大的连续颜色(白色视作同样的颜色)? 分析 说起来很高级,但是我们实际上并不需要穷举打断的地方,只需要把串重复三回啊三回.然后从第二个串的左边开始循环找连续颜色的"初始色"(如果是白色,那么左右看看),在初始色的左右找相同.可以看出共有n个初始色的位置,所以算法也就是O(n2)" role="presentation">O(n2)O(n2)的复杂度.然后还有一些细节要处理.作为一
【USACO1.1】Broken Necklace
题意 一个环形项链,有rbw三种珠子,r代表red,b代表blue,w代表white,从任意一个位置断开,两端分别取珠子,同一端取的珠子要相同颜色,w可以染成想要的颜色,即既可当作r也可以当作b,求最多取得的珠子个数.最多有350个珠子. 分析 可以枚举断开的位置,然后模拟取珠子.也可以枚举起点位置.还可以dp做. 代码 枚举断点 #include<cstdio>#include<algorithm>#define N 355using namespace std; char a;
「日常训练」The Necklace(UVA-10054)
代码 for(int i=0; i!=n; ++i) { int u = cin.nextInt(); int v = cin.nextInt(); edges.add(new Edge(u,v)); startpnt = u; if(g.get(u)==null) g.put(u, new ArrayList<Integer> ()); g.get(u).add(edges.size()-1); edges.add(new Edge(v,u)); if(g.get(v)==null) g.p
[LuoguP1203][USACO1.1]P1203 Broken Necklace
Solution 这道题数据规模奇小,因此大部分人都使用了暴力搜索的方法,这也是我一开始的想法. 对于 100100%100 的数据,3≤n≤3503≤n≤3503≤n≤350 的确可以如此,但暴力搜索的方法也需要进行一些奇怪的判断,因此我又决定直接打dp的解法,其实dp也是很自然的一种想法-- Dynamic Programming 我们可以发现,每个点向左向右,取蓝色取红色能连续取的个数一定是确定的. 于是我们定义dp数组: int lr[maxn]; //lr[i]代表从i点向左不取i点
[USACO1.1.4]坏掉的项链Broken Necklace
P1203 [USACO1.1]坏掉的项链Broken Necklace 标签 搜索/枚举 USACO 难度 普及- 题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 n=29 的二个例子: 第一和第二个珠子在图片中已经被作记号. 图片 A 中的项链可以用下面的字符串表示: brbrrrbbbrrrrrbrrbbrbbbbrrrrb 假如你要在一些点打破项链,展开成一条直线,然后从一端开始收集同颜色的珠子直到你遇到一个不同的颜色珠
P1203 [USACO1.1]坏掉的项链Broken Necklace
P1203 [USACO1.1]坏掉的项链Broken Necklace不错的断环为链的模拟题,开成三倍,有很多细节要考虑,比如总长度要<=n,开头第一个是w等等. #include<bits/stdc++.h> using namespace std; ]; int n; ; int r(int x) { int r=x; char t; while(c[r]=='w') r++; t=c[r]; ]==t||c[r+]=='w') r++; >n?n:r-x+); } int
【P1203】 【USACO1.1】坏掉的项链Broken Necklace
P1203 [USACO1.1]坏掉的项链Broken Necklace 题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 n=29 的二个例子: 第一和第二个珠子在图片中已经被作记号. 图片 A 中的项链可以用下面的字符串表示: brbrrrbbbrrrrrbrrbbrbbbbrrrrb 假如你要在一些点打破项链,展开成一条直线,然后从一端开始收集同颜色的珠子直到你遇到一个不同的颜色珠子,在另一端做同样的事(颜色可能与在这之前收
题解 P1203 【[USACO1.1]坏掉的项链Broken Necklace】
[USACO1.1]坏掉的项链Broken Necklace 22892 破碎的项链 方法一:很容易想到枚举断点,再分别两头找,但是要注意很多细节 #include<iostream> #include<string> #include<cstdio> using namespace std; string s; int n,l,r,ll,rr,tmp,ans; inline int calc(int x) { ll=s[x],rr=s[x+1],l=x-1,r=x+2
P1203 [USACO1.1]Broken Necklace(模拟-枚举)
P1203 [USACO1.1]坏掉的项链Broken Necklace 题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 n=29 的二个例子: 第一和第二个珠子在图片中已经被作记号. 图片 A 中的项链可以用下面的字符串表示: brbrrrbbbrrrrrbrrbbrbbbbrrrrb 假如你要在一些点打破项链,展开成一条直线,然后从一端开始收集同颜色的珠子直到你遇到一个不同的颜色珠子,在另一端做同样的事(颜色可能与在这之前收
洛谷 P1203 [USACO1.1]坏掉的项链Broken Necklace
坏掉的项链Broken Necklace 难度:★ Code: #include <iostream> #include <cstdio> #include <cstring> #include <string> using namespace std; //Mystery_Sky // #define M 1000 string s; int n, ans, flag, maxx, sum; int l[M], r[M]; bool it[M]; int
前端构建工具之gulp(一)「图片压缩」
前端构建工具之gulp(一)「图片压缩」 已经很久没有写过博客了,现下终于事情少了,开始写博吧 今天网站要做一些优化:图片压缩,资源合并等 以前一直使用百度的FIS工具,但是FIS还没有提供图片压缩的相关插件,于是找到了腾讯的智图,而智图目前提供的插件只有gulp-imageisux 无奈之下,只好去学习gulp这款工具了,下面是gulp的相关介绍: gulp介绍 gulp.js 是一种基于流的,代码优于配置的新一代构建工具. Gulp 和 Grunt 类似.但相比于 Grunt 的频繁的 IO
fir.im Weekly - 如何打造 Github 「爆款」开源项目
最近 Android 转用 Swift 的传闻甚嚣尘上,Swift 的 Github 主页上已经有了一次 merge>>「Port to Android」,让我们对 Swift 的想象又多了一些空间. 本期 fir.im Weekly 一如往期精选了一些实用的 iOS,Swift,Android 的开发工具和源码分享,欢迎订阅! 个人品牌:如何在 Github 打造你的爆款开源项目 由@Siva海浪高 分享在gaohailang. 当我们在 Github 上抛出自己的开源项目,都希望 Repo
更新日志 - fir.im「高级统计」功能上线
距离 2016 年到来只剩 10 个日夜,fir.im 也准备了一些新鲜的东西,比如「高级统计」功能和「跳转应用商店」功能,帮助你更好地管理.优化应用,欢迎大家试用反馈:) 新增高级统计功能 这次更新的高级统计功能,可以根据渠道和活动名称,统计不同渠道和活动带来的下载量.操作步骤如下: 第一步:生成统计链接 点击高级统计,进入统计详情页,然后点击生成统计链接: 设置统计链接的应用版本.渠道名称和活动名称,填写完毕后点击保存: 保存后,可在链接统计处查看已生成的统计链接和二维码. 第二步:将统计链
Notepad++ 开启「切分窗口」同时检视、比对两份文件
Notepad++ 是个相当好用的免费纯文本编辑器,除了内建的功能相当多之外,也支持外挂模块的方式扩充各方面的应用.以前我都用 UltraEdit 跟 Emeditor,后来都改用免费的 Notepad++ 来编辑程序.写网站文章. 以下介绍一个简单的小应用,如果你偶尔需要同时开启两个不同的文件来检视.比对内容的话,该如何在分割窗口的两边同时展示两个不同文件的内容呢?其实很简单: 对于简体中文版本,按「视图」→「移动/复制当前文档」→「移动到另一视图」,然后单击工具栏上的「垂直同步滚动」按钮或「
「zigbee - 1」工欲善其事必先利其器 - IAR for 8051 IDE customization
最近在实验室做一些 Zigbee 相关的事情,然而一直没在博客上记录啥东西,也不像原来在公司有动力在 Confluence wiki 上扯东扯西.直到前些阵子,跑到 feibit 论坛上(国内较大的一个 Zigbee 社区),发现有不少刚接触 Zigbee 的朋友,在上面提问:其中有不少问题,我或多或少接触了一些,于是心想,索性在博客上开辟一个类别扯扯 Zigbee 好了. 一来,可以做为一个记录,尤其是今天碰到一个计算结构体偏移量的宏定义,想起之前在 blogspot 上写过一篇「赞叹」Lin
「C语言」文件的概念与简单数据流的读写函数
写完「C语言」单链表/双向链表的建立/遍历/插入/删除 后,如何将内存中的链表信息及时的保存到文件中,又能够及时的从文件中读取出来进行处理,便需要用到”文件“的相关知识点进行文件的输入.输出. 其实,就算不懂得链表,也完全可以学习”文件“相关知识点,但在此之前最好有”指针“基础. 本篇文章整理自<C语言程序设计教程--人民邮电出版社>第十二章——文件,以作文件探讨. 一.数据流与文件概念 二.文件的打开与关闭 三.文件的顺序读写 四.文件的随机读写 五.出错检查 六.低级I/O函数与标准I/O
「C语言」Windows+EclipseCDT下的C语言开发环境准备
之前写过一篇 「C语言」在Windows平台搭建C语言开发环境的多种方式 ,讨论了如何在Windows下用DEV C++.EclipseCDT.VisualStudio.Sublime Test.Clion等IDE/编辑器搭建C语言开发环境,但也只是点到为止的介绍,对每一个开发环境的选择没有详细的步骤与过程: 这次借助C语言期末课程设计文档上介绍用Eclipse开发C语言的时机,逐步图文论证如何用Eclipse从安装到输出自己的第一个C语言Hello World: 欢迎探讨,欢迎互粉: 目录:
如何对抗 WhatsApp「蓝色双勾」-- 3 个方法让你偷偷看讯息
WhatsApp 强制推出新功能「蓝色双勾 (✔✔)」 ,让对方知道你已经看过讯息.一众用户反应极大,因为以后不能再藉口说未看到讯息而不回覆.究竟以后 WhatsApp 是否真的「更难用」? 幸好还有方法可以让你偷看新讯息. 1. 在通知列 (Notification Bar)看当接收到新 WhatsApp 讯息时,无论 iOS / Android 都会在通知列弹出,在那里其实已经可以看到讯息预览.如果是短短的讯息,已经能整个看到.只要不按下去,不开启出来,就不会变成蓝勾.如果讯息太长,就要靠之
FileUpload控件「批次上传 / 多档案同时上传」的范例--以「流水号」产生「变量名称」
原文出處 http://www.dotblogs.com.tw/mis2000lab/archive/2013/08/19/multiple_fileupload_asp_net_20130819.aspx FileUpload控件「批次上传 / 多档案同时上传」的范例--以「流水号」产生「变量名称」 之前的两个范例: [C# / ASP.NET]FileUpload控件「批次上传 / 多档案同时上传」的范例(C#语法) [VB / ASP.NET]FileUpload控件「批次上传 / 多档
ListView与.FindControl()方法的简单练习 #2 -- ItemUpdting事件中抓取「修改后」的值
原文出處 http://www.dotblogs.com.tw/mis2000lab/archive/2013/06/24/listview_itemupdating_findcontrol_20130624.aspx ListView与.FindControl()方法的简单练习 #2 -- ItemUpdting事件中抓取「修改后」的值 本文跟上一篇文章有关连,请依照顺序来练习: ListView与.FindControl()方法的简单练习#1 -- Page_Load事件中的错误 http
热门专题
通过下标找对应的 js
go写mysql映射集合
windows2016日志
http.d配置源文件
obmyzsh安装失败
swagger mustache重写
tcl读取csv文件的编码方式
如何将n阶微分方程化为一阶微分方程组
读取resources下文件的路径
influx配置模版influxdb.conf
cmake 添加头文件
gridPanel合计
npm构建vue项目
Vue 获取code 返回时候域名非法
translations editor自动
php中的session_start函数怎么用
Android debug包运行正常,release包错误
openlayers释放
linux 非root用户 无法解析主机名称
sparksql写出文件时 指定文件名%E