Broken necklace

使用动态规划算法解决Broken Necklace Broken Necklace你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3,珠子是随意安排的。 这里是 n=29 的二个例子:第一和第二个珠子在图片中已经被作记号。 图片 A 中的项链可以用下面的字符串表示: brbrrrbbbrrrrrbrrbbrbbbbrrrrb . 假如你要在一些点打破项链,展开成一条直线,然后从一端开始收集同颜色的珠子直到你遇到一个不同 阅读详情
/*
ID: boyshan1
PROG: beads
LANG: C++
*/
#include <iostream>
#include <fstream>
using namespace std;
int Collect(char necklace[],int length)
{
char necklace2[700];
int n;
for(n=0;n<2*length;n++)//连接两个串
{
if(n>=length)
necklace2[n]=necklace[n-length];
else necklace2[n]=necklace[n];
}


int i=0,j,k,num=0;int Max=0;
char  color,color2;
bool c1=false,c2=false;
while(i<n)
{
for(j=i;j>=0;j--)//从当前位置往前遍历
{
if(necklace2[j]!='w'&&c1==false)
{
color=necklace2[j];//遇见第一个不是w的颜色记录下来
c1=true;
}
if(necklace2[j]!='w'&&c1==true&&necklace2[j]!=color)break;//继续向前走,遇到既不是"w",又不是该颜色就跳出
num++;
}
for(k=i+1;k<n;k++)//从当前位置向后遍历
{
if(necklace2[k]!='w'&&c2==false&&necklace2[k]!=color)//遇见第一个既不是w也不是上面已记录的颜色,记录下来
{
color2=necklace2[k];
c2=true;
}
if(k==length&&c2==true&&necklace2[k+1]!='w')break;  //两个串交接处的处理
if(necklace2[k]!='w'&&c2==true&&necklace2[k]!=color2)break;//继续向后走,遇到既不是w又不是该颜色跳出
num++;
}
if(num>=n)  //处理字符串中只有一种颜色的情况
Max=length;
else if(i>=length&&necklace2[i]!='w'&&necklace2[i+1]!='w'&&necklace2[i]!=necklace2[i+1])break;//如果两个串的交接处颜色不同,且二者没有谁是w,就没必要往下检查了
else
if(num>Max)
{
Max=num;
num=0;
c1=false;
c2=false;
}
else    
{
num=0;
c1=false;
c2=false;
}
i++;
}
return Max;
}
int main()
{
ofstream fout("beads.out");
    ifstream fin("beads.in");
int N,i=0;
char neck[350];
while(fin>>N)
{
while(i<N)
{
fin>>neck[i];
i++;
}
fout<<Collect(neck,N)<<endl;
i=0;
}
return 0;
}
破碎的项链 Broken Necklace 破碎的项链 Broken Necklace.cpp 自 信 地 说 这 道 题 我 做 过 ——————————————分割线—————————————————— 从中间开始,然后找到第三个点(是w)。 第三个点变r和b往前后各看一遍。 最后最长也不能比总长长 #include<bits/stdc++.h> using namespace std; string a; int f(in... 阅读详情

相关推荐

Usaco 1.1.4 破碎的项链(Broken Necklace)

题目:  破碎的项链 来源:  Usaco1.1.4 题目大意:  一个长度为N,由w、r、b字母组成的长链,w=r或者b,求从哪里断开可以向左向右得  到最长的一条有相同字母组成的链 数据范围:

慢慢前行,跨越预言 785

USACO - Chapter1 Section 1.1 - Broken Necklace

Broken Necklace

zhuo1ang的博客 470

[USACO 1.1.4] Broken 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

Aression的博客 621

【USACO】1.1.4 Broken Necklace 破碎的项链

假设你要在某个时候折断项链,把它摆直,然后从一端收集相同颜色的珠子,直到你找到一个不同颜色的珠子,对另一端做同样的事情(当然这端收集到的珠子和之前收集的珠子颜色可能不相同)。如图A中,brw分别代表蓝色、红色、白色三种珠子,它可以被表示为:brbrrrbbbrrrrrbrrbbrbbbbrrrrb。对于图A的项链,可以收集最多8颗珠子,在珠子9和珠子10之间断裂,或者在珠子24和珠子25之间断裂。收集珠子时,遇到的白色珠子可能会被认为是红色或蓝色。编写一个程序来确定可以从提供的项链中收集的珠子的最大数量。

2302_79770546的博客 546

Broken Necklace(参考解析)

很容易看懂的usaco上的代码实现。希望对大家有帮助

Arxml文件可视化:当汽车软件架构遇见交互式设计工具

本文探讨了Arxml文件在汽车电子系统开发中的可视化技术,结合AUTOSAR架构标准,介绍了如何利用现代Web技术构建交互式设计工具。通过三维组件关系图、动态数据流展示和版本对比等功能,显著提升开发效率和架构评审质量,适用于MBD和ASPICE开发流程。

weixin_29050271的博客 427

[usaco]Broken Necklace题解

题目: 给出一个字符串,示意为一串项链(闭合的),长度为n,r表示红色珠子,b表示蓝色,w表示白色(可蓝可红),从任意一处切开,从两端点开始分别取相同颜色的珠子,并求珠子的最大值。(不同的切法有不同的两端,而因为是最大值,显然两端的颜色是不同的) 样例: 输入: 29 wwwbbrwrbrbrrbrbrwrwwrbwrwrrb 输出: 11 分析:从最后1,2个之间切开则左侧wrw

xcwhkh的博客 650

如何搭建pikachu靶场

Pikachu靶场本地搭建指南 下载安装PHPStudy并启动Apache/MySQL服务 获取Pikachu靶场源码并解压到网站根目录 配置数据库连接信息(修改config.inc.php文件) 创建pikachu数据库(用户名/密码设为root) 访问http://localhost/pikachu测试功能 常见问题:数据库连接失败需检查服务状态和配置信息,页面报错需检查PHP版本兼容性。建议使用PHP7.3/7.4版本,在隔离环境中搭建使用。 (150字)

2401_85351702的博客 1276

USACO TRAINING - PROB Broken Necklace

本文记录的是USACO练习题-Broken Necklace题目descriptionYou have a necklace of N red, white, or blue beads (3<=N<=350) some of which are red, others blue, and others white, arranged at random. Here are two examples

BIG BOAT的博客 294

西电计组实验一 存储器实验

计组实验报告 实验一 存储器实验——FPGA中LPM_ROM定制与读出实验 一.实验目的   1.掌握FPGA中lpm_ROM的设置,作为只读存储器ROM的工作特性和配置方法;   2.用文本编辑器编辑mif文件配置ROM,学习将程序代码以mif格式文件加载于lpm_ROM中;   3.在初始化存储器编辑窗口编辑mif文件配置ROM;   4.验证FPGA中mega_lpm_ROM的功能。 二.实验原理   ALTERA的FPGA中有许多可调用的LPM (Library Parameterized Modu

Polaris的博客 1万+

svn 分支(branch)和标签(tag)管理

svn的分支管理

caohongxing的博客 3万+

USACO 1.2 Broken Necklace

USACO 1.2 Broken Necklace 题目 见落谷 分析 这是第一道开始有点麻烦的USACO的题目。朴素的想法是模拟数珠子的过程,遍历一边就可以得到最终答案了,但是 有几个坑要考虑好(好像USACO本身设计的案例还是很简单的),比如全白珠子,或是重叠数了白珠子。看了官方解 还有dp的解法,真是orz,先上个人的解,有时间再研究一下官方的。 代码 注释处...

蟋蟀的博客 254

数字电路基础(CMOS电路、低功耗方法)

文章目录一、CMOS器件1.1.CMOS反相器1.2. CMOS与非门1.3.CMOS或非门1.4 CMOS与门和CMOS或门二、CMOS电路参数——功耗 一、CMOS器件 1.1.CMOS反相器 CMOS反相器实现非门功能,由一个PMOS管和一个NMOS管组成,其逻辑电路图如下: 其真值表如下: In PMOS NMOS Out 0 √ 导通 ×关闭 1 1 ×关闭 √...

Mr.翟的博客 1万+

[USACO Training] Broken Necklace (DP)

Broken Necklace 题目大意: 有一串项链,有红色(r),白色(w),蓝色(b)组成,现在从任意位置把项链断开,从断开的两头分别向项链中间遍历。以左端为例,如果左端第一个为红色,那么从左开始取出所有红色,直到碰到蓝色停止。问最多可以从这串项链中取走多少珠子。(白色既可以当做红色,也可以当做蓝色) 解题思路: O(N^2) 由于珠子数不多,最多350颗。那我们可以用纯暴

SIOFive的专栏 1265

【破局之道】LangChain4j 0.31.0 + Java 8 + Spring Boot:在“过时”环境中构建本地大模型应用的实战指南

本文为使用Java 8和Spring Boot等“过时”技术栈的团队提供了构建本地大模型应用的实战指南。通过采用LangChain4j 0.31.0这一兼容版本,结合Ollama部署本地大模型,开发者无需升级JDK即可在现有项目中快速集成AI能力,实现智能问答、文档摘要等功能,为传统项目注入创新活力。

t4y5u6i7o的博客 557

宝塔面板 python管理器2.0安装Mrdoc

自从python管理器从1.9升级2.0后,导致原教程不能使用。 故关于2.0新开教程如下。 关于python管理器2.0 最大的区别在于: python管理器2.0不再需要进入虚拟环境,直接在当前环境进行操作,但是需要指定python路径及pip路径。 1、新建mrdoc工程目录,下载源码: 新建目录【mrdoc】,进入mrdoc目录,并在宝塔ssh或或远程ssh中执行 ,下载源码 git clone https://gitee.com/yang_lite/MrDoc.git .

debj031634的专栏 5991

USACO Broken Necklace

USACO Broken Necklace 1. 算法:从一个节点开始,假如是r,如果下一个是r或者w,继续,一直到下一个为b为止,然后从b开始看下一个,如果是b或者w,继续,如果是r停止,处理“环”的问题,用了求余,可以使结尾的下一个变成第一个,但是要注意,最后结...

dayong9372的博客 167

Centos7系统添加中文支持(附中文语言包)

这里以centos7.6为例,在安装系统是没有选择中文,之后如果需要添加中文支持。在命令行执行后,会提示启动图形模式失败,转为启动文本模式。文本模式其实和图形模式差不多,操作需要用键盘而不是鼠标。在弹窗后,通过上下键选择Chinese(P.R of China) - 中文(简体):然后,按Tab键选择Yes,点击回车。rebootlocale可以看到系统语言已经变成了zh_CN.utf-8:之后,服务器上的中文名称就可以正常显示正常了。

悦分享 683

USACO-Section1.1 Broken Necklace

2017-05-25题目大意:你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的。 这里是 n=29 的二个例子: 1 2 1 2 r b b r b r r b r b

Jane_96的博客 510

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

[LuoguP1203][USACO1.1]P1203 Broken Necklace

Solution 这道题数据规模奇小,因此大部分人都使用了暴力搜索的方法,这也是我一开始的想法。 对于 100100%100 的数据,3≤n≤3503≤n≤3503≤n≤350 的确可以如此,但暴力搜索的方法也需要进行一些奇怪的判断,因此我又决定直接打dp的解法,其实dp也是很自然的一种想法…… Dynamic Programming 我们可以发现,每个点向左向右,取蓝色取红色能连续取的个数一...

The Clouder's 292

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Broken Necklace

You have a necklace of N red, white, or blue beads (3<=N<=350) some of which are red, others blue, and others white, arranged at random. Here are two examples for n=29: 1 2 ...

Slatter的博客 471

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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

题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3&lt;=N&lt;=350),珠子是随意安排的。 这里是 n=29 的二个例子: 第一和第二个珠子在图片中已经被作记号。 图片 A 中的项链可以用下面的字符串表示: brbrrrbbbrrrrrbrrbbrbbbbrrrrb 假如你要在一些点打破项链,展开成一条直线,然后从一端开始收集同颜色的珠子直到你遇到一个不同的...

Every Master was once a disaster or beginner. 298

USACO - 1.1.4 - Broken Necklace

USACO - 1.1.4 - Broken Necklace 题目很好懂,思路也很清晰,不就是暴力找断点然后正反各跑一遍,但是这个白色珠子的设定卡了我一上午,连样例都没有过,后来去参考别人的代码,发现了一种已经被我遗忘的处理方法,就是把字符串再加一遍,这样就比我之前写的这个题的代码要更好操作了 有一些细节,需要进行处理,比如如果是白色珠子开头或者为结尾,就要让它变成最近的珠子的颜色,这样才能保证从头到尾或者从尾部到头,尽可能的有最大连续相同颜色的珠子 大部分解释,都以注释的形式写在代码里了 #includ

CUCUC1的博客 222

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

题目描述你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3&lt;=N&lt;=350),珠子是随意安排的。 这里是 n=29 的二个例子:第一和第二个珠子在图片中已经被作记号。图片 A 中的项链可以用下面的字符串表示:brbrrrbbbrrrrrbrrbbrbbbbrrrrb假如你要在一些点打破项链,展开成一条直线,然后从一端开始收集同颜色的珠子直到你遇到一个不同的颜色珠子,在另一端做同样...

Ant_e_zz的博客 438

broken necklace

题目: Broken Necklace You have a necklace of N red, white, or blue beads (3 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

u013496346的专栏 1002

USACO1.1.4 Broken Necklace 破碎的项链

一.题目要求 Broken Necklace You have a necklace of N red, white, or blue beads (3 1 2 1 2 r b b r b r r b

ge_rui_jun的专栏 1604
上一篇: Apache2.2 与PHP配置
下一篇: Milking cows
爱与信
博客等级 码龄14年 75粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值