当前位置: 首页 > news >正文

信奥赛CSP-J复赛集训(DP专题)(16):P1203 [USACO1.1] 坏掉的项链 Broken Necklace

信奥赛CSP-J复赛集训(DP专题)(16):P1203 [USACO1.1] 坏掉的项链 Broken Necklace

在这里插入图片描述

题目描述

你有一条由 n n n 个红色的,白色的,或蓝色的珠子组成的项链,珠子是随意安排的。 这里是 n = 29 n=29 n=29 的两个例子:

第一和第二个珠子在图片中已经被作记号。

图片 A 中的项链可以用下面的字符串表示:

brbrrrbbbrrrrrbrrbbrbbbbrrrrb

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

例如,在图片 A 中的项链中,在珠子 9 9 9 和珠子 10 10 10 或珠子 24 24 24 和珠子 25 25 25 之间打断项链可以收集到 8 8 8 个珠子。

白色珠子什么意思?

在一些项链中还包括白色的珠子(如图片B) 所示。

当收集珠子的时候,一个被遇到的白色珠子可以被当做红色也可以被当做蓝色。

表现含有白珠项链的字符串将会包括三个符号 rbw

写一个程序来确定从一条被给出的项链可以收集到的珠子最大数目。

输入格式

第一行一个正整数 n n n ,表示珠子数目。
第二行一串长度为 n n n 的字符串, 每个字符是 rbw

输出格式

输出一行一个整数,表示从给出的项链中可以收集到的珠子的最大数量。

输入输出样例 #1

输入 #1

29 
wwwbbrwrbrbrrbrbrwrwwrbwrwrrb

输出 #1

11

说明/提示

【数据范围】
对于 100 % 100\% 100% 的数据, 3 ≤ n ≤ 350 3\le n \le 350 3n350

题目翻译来自NOCOW。

USACO Training Section 1.1

AC代码(100分)

#include<bits/stdc++.h>
using namespace std;
int n;
string a;
int f(int x){//从x和x+1处断开,计算答案 
	int ans=0;
	char a1=a[x],a2=a[x+1];
	//从断点处往前看
	for(int i=x;i>x-n;i--){
		if(a[i]==a1) ans++;
		else if(a[i]=='w') ans++;
		else break;
	} 
	//从断点处往后看
	for(int i=x+1;i<x+n;i++){
		if(a[i]==a2) ans++;
		else if(a[i]=='w') ans++;
		else break;
	} 
	return ans;
} 
int main(){
	cin>>n;
	cin>>a;
	a=a+a+a;
	int ans=-1;
	//三段,从中间那一段开始处理
	for(int i=n;i<2*n;i++){
		if(a[i]=='w'){
			a[i]='r'; ans=max(ans,f(i));
			a[i]='b'; ans=max(ans,f(i));
			a[i]='w';
		}else{
			ans=max(ans,f(i));
		}
	} 
	ans=min(ans,n);//最大的情况下是n个 
	cout<<ans<<endl;
	return 0;
}  

文末彩蛋:

关注并查看老师的个人主页,学习完整csp信奥赛完整系列课程: https://edu.csdn.net/lecturer/7901

在这里插入图片描述

相关文章:

  • 【Qt QML】Loader动态加载组件
  • 【SegRNN 源码理解】图示理解 forward的过程
  • Kanna 与 Swift:结合使用提升网络请求效率
  • vue3,Element Plus中隐藏树el-tree滚动条
  • AIP-160 过滤
  • 采用OllamaSharp实现.NET快速对接deepseek实现聊天、模型管理、流式响应等功能
  • 统计作业提交情况python脚本
  • css错峰布局/瀑布流样式(类似于快手样式)
  • JVM参数调整
  • SAP的错误:General error 339 invalid number
  • 文献学习——考虑混合储能系统选择的基于改进蜂群算法的热电联产微网多目标经济优化调度
  • 攻防世界WEB(新手模式)19-file_include
  • Hadoop、Hive、Spark的关系
  • 盛铂科技 SLMF315频率综合器200MHz至15GHz 国产频综模块
  • 2024华为OD机试真题-磁盘容量排序算法(C++)-E卷B卷-100分
  • linux 使用阿里云盘 阿里网盘
  • 我的两个医学数据分析技术思路
  • UI自动化:利用百度ocr识别解决图形验证码登录问题
  • 实验一:在Windows 10/11下配置和管理TCP/IP
  • 【0012】Python函数详解
  • 协会网站设计方案/网页设计用什么软件
  • av做视频在线观看网站/浏览器2345网址导航下载安装
  • 共青团网站建设相关意见/公司企业网站制作
  • 南京 推广 网站建设/免费网络推广方式
  • 做男女的那个视频网站/网站制作基本流程
  • 做电商设计在哪个网站接单/百度seo优化收费标准