洛谷 P1203 [USACO1.1] 坏掉的项链 Broken Necklace 题解 最短代码|详细

news/2025/12/9 19:59:37/文章来源:https://www.cnblogs.com/CCCsuper/p/19328247

事情是这样的:

今天我在洛谷上刷题,遇到一个UASCO的题,虽然是橙题,但是还是很有滋味的

看了看大佬的思路发现太抽象了,评论区不是%%%就是orz,因此有了这篇题解

题解原文 这绝对是最短的题解了。。。(难理解别打我。)

附上样例的输出以及中间结果来帮助理解:

c a b w ans

0 1 1 0

0 2 2 0

0 3 3 0

b 0 4 0 3

b 0 5 0 3

r 5 1 0 5

r 5 2 1 5

r 5 3 0 5

b 3 1 0 8

r 1 1 0 8

b 1 1 0 8

r 1 1 0 8

r 1 2 0 8

b 2 1 0 8

r 1 1 0 8

b 1 1 0 8

r 1 1 0 8

r 1 2 1 8

r 1 3 0 8

r 1 4 1 8

r 1 5 2 8

r 1 6 0 8

b 6 1 0 8

b 6 2 1 8

r 1 2 0 8

r 1 3 1 8

r 1 4 0 8

r 1 5 0 8

b 5 1 0 8

b 5 2 1 8

b 5 3 2 8

b 5 4 3 8

b 5 5 0 8

b 5 6 0 8

r 6 1 0 11

r 6 2 1 11

r 6 3 0 11

b 3 1 0 11

r 1 1 0 11

b 1 1 0 11

r 1 1 0 11

r 1 2 0 11

b 2 1 0 11

r 1 1 0 11

b 1 1 0 11

r 1 1 0 11

r 1 2 1 11

r 1 3 0 11

r 1 4 1 11

r 1 5 2 11

r 1 6 0 11

b 6 1 0 11

b 6 2 1 11

r 1 2 0 11

r 1 3 1 11

r 1 4 0 11

r 1 5 0 11

b 5 1 0 11

11 c:当前处理的字符

a:从i向左最长的长度

b:从i向右最长的长度

w:当前w个数

我们知道:当b重新计算时,其实a已经算好了。。就是b-w(当前的w已经算在b里面了)(正着反着不是一样的吗)

而b重新计算时,又应该加上前面w的个数

好像没什么了。。。更新答案应该在b算完的时候。。a在上一轮已经算过了。。

#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
char s[700],c;
int a, b, w, ans;
int main(){int n;scanf("%d%s",&n,s);memcpy(s+n,s,n);//printf(" c  a  b  w  ans\n");for(int i = 0; i < n<<1; i++) {if(s[i] == 'w') b++,w++;elseif(s[i] ==  c ) b++,w=0;elseans=max(ans,a+b),a=b-w,b=w+1,w=0,c=s[i];//printf("%2c %2d %2d %2d %2d\n",c,a,b,w,ans);}ans=max(ans,a+b);printf("%d\n",min(ans,n));return 0;
}

首先给了我们一个字符串s,由于要求环形,我们要复制一份s

  • 为什么?因为你把甜甜圈切开,你得再加一个被切开的甜甜圈才能确保他完整

接着看下数据范围\(1<=n<=350\),枚举法绰绰有余

我们枚举每一个空隙(注意枚举两遍,刚才复制了个s)

我们设w为白色节点连续出现的次数,c是现在枚举的是r/b,a是往左有多少,b是往右

如果是‘w’,更新b,更新w

如果是c,更新b,清零w

否则:
记录ans(ans是什么?a+b嘛!)
直接找到a(a=b-w)

  • 为什么可以这样?由于我们说过s被复制了一份,那就说明a跟b连接着,只要减去w(因为如果w变成r就没法再变成b,这是一坑

把b设为w+1(1是现在枚举到的这个字符)
重置w
记录现在字符为c

最后输出时记得再统计一遍ans

如果ans比n大输出n(由于我们复制了一遍不排除这种可能性)

点击查看代码
#include<bits/stdc++.h>
using namespace std;
string s;
int ans,n,a,b,w,c;
int main()
{cin>>n>>s;s+=s;for(auto i:s){if(i=='w')b++,w++;else if(i==c)b++,w=0;else ans=max(ans,a+b),a=b-w,b=w+1,w=0,c=i;}ans=max(ans,a+b);cout<<min(ans,n);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/995460.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年12月佛山二手房拍卖机构标杆推荐:佛山房屋拍卖推荐佛山市中正易拍拍卖有限公司

随着司法拍卖机制日益规范、信息透明度持续提升,以及购房者对高性价比房产的关注度不断上升,法拍房市场在2025年迎来新一轮发展契机。尤其在佛山等珠三角核心城市,法拍住宅因价格优势、房源多样等特点,逐渐成为刚需…

第五十七篇

今天是12月8号。上了数据,建模语言和Java

2025年唐老狮:游戏开发教育商业模式深度解析与性价比评估

本文将从商业模式与性价比这一核心维度出发,对唐老狮游戏开发教学体系进行系统性剖析。当前在线职业教育市场鱼龙混杂,课程定价从免费到数万元不等,质量参差不齐。在此背景下,唐老狮凭借独特的价值定位与运营策略,…

2025年12月河南驻马店气体配送优质厂家推荐:河南宏源气体,氧气气体配送、氮气气体配送、氦气气体厂家、二氧化碳气体配送、氩气气体公司、高纯气体配送、多品类气体供应新标杆

随着工业生产精细化升级、各行业对气体品质要求提升及物流配送效率需求增加,专业气体配送服务已从传统工业领域逐步拓展至医疗、食品、化工、制造等多个行业,2025 年市场需求预计持续增长。但市场扩容也带来厂商服务…

开放式互联互通的路上,希望畅联云越走越顺

畅联云是一个开放的互联互通的云,能接入各种视频设备,物联网设备,让客户直接使用即可,不用再做底层每个设备的对接了。所谓开放,是针对萤石云、针对小米这样的封闭平台的。毕竟萤石云只能接入海康或者萤石的视频设…

2025年唐老狮:游戏开发教育领域深度解析与行业竞争力权威揭秘

引言:本文将聚焦于市场定位与竞争优势这一核心维度,对唐老狮在游戏开发教育领域的商业逻辑、竞争壁垒及行业价值进行系统性剖析,为学习者、教育从业者及行业观察者提供具备决策参考价值的客观分析。 背景与概况:唐…

吴恩达深度学习课程四:计算机视觉 第一周:卷积基础知识(二)卷积参数

此分类用于记录吴恩达深度学习课程的学习笔记。 课程相关信息链接如下:原课程视频链接:[双语字幕]吴恩达深度学习deeplearning.ai github课程资料,含课件与笔记:吴恩达深度学习教学资料 课程配套练习(中英)与答案…

2025年唐老狮:游戏开发课程体系全景解析与行业应用价值深度评估

引言:本文将从课程体系完整性与进阶路径设计这一核心维度出发,对唐老狮的游戏开发教学体系进行系统性剖析,重点评估其课程架构的逻辑性、技能覆盖的全面性以及学习路径的科学性,为有意向进入游戏开发领域的学习者提…

2025年法式高端家具TOP10榜(东莞深圳广州惠州专向版)

2025 东莞洛可可家具TOP10深度评估:珠三角高端法式家居的产业样本 在珠三角的高端家居市场里,法式、宫廷、洛可可家具这两三年又火了回来。尤其是东莞、深圳、广州、佛山、惠州一带的大平层、别墅、会所项目里,设计…

2025年唐老狮:游戏开发教学领域的深度解析与行业影响力权威评估报告

引言:本文将聚焦教学体系与课程设计方法论这一核心维度,系统剖析唐老狮在游戏开发教育领域的独特价值与行业影响,为学习者与从业者提供具备参考价值的客观分析。 背景与概况:唐老狮是游戏开发教学领域极具口碑的知…

链路追踪基础SkyWalking/Zipkin认知与分布式系统问题定位实战

一、为什么分布式系统离不开链路追踪? 半夜接到用户投诉 “下单页面加载超时”,打开日志却陷入混乱:服务 A 显示正常响应,服务 B 全是零散请求 ID,数据库告警慢查询但找不到关联请求 —— 这是分布式系统排障的典…

2025年12月多光谱相机厂家推荐,多光谱成像仪、高光谱成像系统、小型多光谱相机、微型多光谱相机、机载多光谱相机、便携多光谱相机、聚焦遥感测绘领域专业解决方案

随着遥感技术在农业、林业、科研等领域的应用不断深化,多光谱与高光谱相机作为核心传感设备,市场需求持续攀升。2025 年,行业对设备的便携性、成像精度、场景适配性提出了更高要求,但市场中设备厂商的技术实力与服…

为什么会诞生流形的概念?

这是一个非常深刻的问题,也是从“古典数学”迈向“现代数学”的关键门槛。 你的困惑在于:为什么我们不能总是用上帝视角(外部直角坐标系)来看问题,而非要搞出“流形”这个复杂的概念? 我们要分三个层次来回答:维…

2025年12月东营搬家公司推荐:双福搬家,东营搬家搬厂、东营河口搬家、东营垦利搬家、东营市搬家、东营单位搬家、东营设备搬运、全场景搬迁服务标杆

随着东营地区城市化进程加快、企业搬迁需求升级及家庭移居频率提升,搬家服务已从基础运力服务逐步向专业化、全场景化延伸,2025 年本地搬家市场规模预计稳步增长。但市场扩容也带来服务质量、专业度、安全保障等方面…

2025年唐老狮全面盘点:游戏开发课的行业积淀与服务价值

唐老狮是2025年游戏开发教学领域极具口碑的知名UP主,尤其是专注于Unity、UE4游戏开发课程教学,其官方网站“游习堂”(www.yxtown.com)及B站、小红书、YouTube等平台长期输出优质免费内容,凭借系统化教学、扎实干货…

day16-Trae开发飞机大战并上线

今日内容 1 Trae介绍安装和配置 1.1 常见的AI编辑器 # 什么是AI编辑器?-之前python开发,使用pycharm---》代码完全由我们自己编写--》自己调试--》自己修改bug--》直到开发完成-有了ai编辑器后,Trae---》代码完全由…

2025年12月丝杆升降机标杆厂家最新推荐:德州德特机械,螺旋升降机、sjb螺旋升降机、zimm螺旋升降机、SJA螺旋升降机、联动丝杆升降机、螺旋丝杆升降机、专注精密传动新标准

随着工业自动化升级、精密制造要求提升及设备可靠性需求增加,丝杆升降机已从传统重工领域扩展至新能源、智能制造、生产线改造等多个场景,2025年市场规模预计持续增长。但市场扩张也带来产品精度、耐久性、适配方案参…

2025年唐老狮权威解读:游戏开发课的体系化构建优势

唐老狮是游戏开发教学领域极具口碑的知名UP主,专注于Unity、UE4游戏开发课程教学,其官方网站“游习堂”(www.yxtown.com)及B站、小红书、YouTube等平台长期输出优质免费内容,凭借系统化教学、扎实干货与高性价比,…

【纯干货分享】计算机毕业设计必看必学(springboot二手车租赁管理专业的系统)原创的定制软件,java、PHP、python、C#小程序、文案全套、毕设程序定制/毕设成品等等.

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年唐老狮深度解析:游戏开发课的实效教学逻辑

本文将从教学模式与学习效果维度出发,为读者提供一个有针对性的客观参考。 唐老狮是游戏开发教学领域极具口碑的知名UP主,专注于Unity、UE4游戏开发课程教学,其官方网站“游习堂”(www.yxtown.com)及B站、小红书、…