AtCoder Beginner Contest 426 游记

news/2025/10/5 14:44:09/文章来源:https://www.cnblogs.com/seium/p/19126576

省流

\(20min\) 拿下四题,自信跳过看起来复杂的 E 去做数据结构 F,结果迷失在调线段树未能通过。

10.4

内含剧透,请vp后再来。

不是题解!!!!!!!

赛前

白天一天什么也没做,就写了一篇前一天 \(CF\) 的题解,幸好有一把 \(ABC\) 不然又是毫无意义的一天。

赛时

A 题把字符串对应成相应的数字比较大小即可,不提。
B 题给定一个字符串,要求找到一个只出现一次的字符,剩下的字符均为同一个字符。我是直接拿第一个去比较所有的剩下的,如果找到一个和第一个相同的就直接输出第二个,否则输出第一个。做完 C 后发现挂了,原因是第二个可能也是与第一个相同的,所以还要再遍历一边找到与第一个不同的字符,在 \(12min\) 以一发罚时通过。
改 B 之前没等测试结果直接看的 C,C 题有一些操作,每个操作要求把所有小于等于 \(x\) 的数变成一个大于 \(x\) 的数 \(y\),然后输出这个操作变了多少个。数据在 \(1e6\) 的范围。发现我们每次变化之后小于等于 \(x\) 的数都没了,所以记录一下现在到哪里没数了,下面的就不用再遍历。也就是说每个桶最多被遇到一次,复杂度就是 \(O(n)\)\(11min\) 通过。
D 题给了一个 \(01\) 串,每次操作可以把头或者尾的一个字符反转然后插到字符串的任意位置,问至少多少次操作能把这个串的数字变得全部相同。看一下样例可以发现除了选定的最中心的那个串之外别的字符都要动,和最终不同的只用动一次,而相同的要动两次。那么去找最长的 \(0\) 串和 \(1\) 串并统计 \(0\)\(1\) 的个数就可以解决了,\(20min\) 通过。
然后看了一眼 E 题,发现又是式子又是距离的,很烦,看了一下榜发现 E 和 F 过的人差不多(实际上只是因为我前面写的勉强可以算有一点快 E 和 F 过的人数还没分层)就去先看了 F,发现是数据结构爱好者最爱好的数据结构,于是直接扑上去写 F。
F 是在一个线段树范围里执行操作,把一个区间里的数都减少 \(k\),如果不足 \(k\) 的就减到 \(0\)。发现又是 \(log\) 数据又是区间减直接往线段树想,考虑怎么维护不足 \(k\) 的。发现如果有一个数减到 \(0\) 之后特殊判断一次,之后就不用管他,这样每个数都最多被特殊搞一次,时间复杂度就还是 \(O(nlogn)\) 的。那么就维护区间中除了 \(0\) 之外的最小值,如果小于 \(k\) 就往下去特殊搞掉他。再维护一个不为 \(0\) 的数量就可以快速计算出后面区间减该返回的东西。这种显然写一个正常的懒标记线段树就很好搞,但是我擅长写不下传标记的线段树,于是决定和他搏斗,对于某个当前点他的最小值靠下面更新上来,上面的则看累计的标记,本身则看需要的那个 \(k\)。终于,最后还是在不知道哪的细节挂了。

赛后

稍微改了一会 F 没对,去看题解发现我的思路是完全正确的,重构一下代码应该是可以过的。但是在用 \(AI\) 帮我查代码的时候(我确实懒了,对不起,真的查不出啊)看到了吉司机线段树,决定去学习一下。吉司机线段树主要实现了一个新的功能就是把一些点的值和 \(x\)\(min\) 或者 \(max\)。应用到这道题目,就是直接减 \(k\) 之后再和 \(0\)\(max\) 就可以了。实现思路其实和我们刚刚想的思路很有相似之处,线段树中额外统计最小值,次小值和最小值的个数,以及把子节点最小值都改成了 \(x\) 的懒标记。如果 \(x\) 小于最小值那么无事发生,如果 \(x\) 小于次小值,那么把最小值改成 \(x\) 并记录一下下传的时候应该把下面的最小值都改成 \(x\),然后剩下的就按正常的来下传标记之类的就可以,\(sum\) 的变化则可以利用 \(min\)\(x\) 之差,以及最小值的个数求出。如果 \(x\) 大于等于次小值,那么就递归下去全部更新一遍,但是由于至少最小值和次小值都会变成同一个数,所以这个操作最多做 \(n\) 次所有数就都一样了(在有区间加之前),均摊下来的复杂度仍旧是 \(O(nlogn)\)
然后看了 E 题,题目给了两个人在点上,然后他们都有一个目标,都以每秒一个单位的速度向目标走去,走到目的地之后就停下来,问过程中最短距离是多少。前一天打的时候简说就是个三分,我随便感觉了一下挺对的直接写交上去挂了,然后研究一下,发现一个人停下来之后模型就不对了。两个人一起在走的时候,可以视作一个人没动,另一个人相对他做匀速直线运动,那么显然距离是二次函数。但一个人停下后,另一个人的速度和方向就变了,可能就不对劲。所以要分停下来之前和停下来之后两种情况三分,然后就过了。
这场比赛给的分数换算成 \(cf\) 之后表现分是 \(1736\),说实话并不好,我很难愿意承认失败的原因是先开了后面的题目,我认为更大的问题是我强行写了不下传标记的线段树嘴硬而不是写更好实现细节更少的正常线段树,这确实是一个问题,先开数据结构的策略问题不大(当然就结果来说肯定还是先看 E 好,但有的时候 E 推式子就是比 F 线段树花时间)。还有一个问题是现在数据结构的东西越补越多,变成数据结构爱好者了,我还要加强别的方面才行。

2025年10月5日

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

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

相关文章

广东手机网站制作价格进一步推进网站建设

文章目录------------------------------学习教程篇-------------------------------bilibili哔哩哔哩网易云课堂siki学院:泰课在线:可汗学院:线性代数的本质 - bilibili计算机科学速成课 - bilibiliLearnOpenGL:The Book of Shad…

淘宝客网站如何做推广方案wordpress接入微信支付

程序员在编程过程中,经常会在代码中使用到“where 11”,这是为什么呢?SQL注入初次看到这种写法的同学肯定很纳闷,加不加where 11,查询不都一样吗?例如:select * from customers; 与 select * fr…

如何把MCP服务集成到智能体?手把手教学(含视频教程)

导航前言 视频讲解 作品展示 工作流程展示 操作步骤一 新建mcpserver工作流 二 测试智能体 三 发布智能体结语 参考AI+ 的时代已经来临,不管你是否愿意,你都必须去接受它。前言 在前面的文章《10min搭建一个大模型智…

bootimg.exe检查验证备份导出的img镜像文件是否正常

前言全局说明经常刷手机的人,必要做的就是先备份,那备份出的文件,是否正常,就要用 bootimg.exe 来验证注意:刷机,会丢失用户:照片、聊天等信息资料。请备份基带等信息。请慎重刷机 !!! 注意:刷机,会丢失用户:…

华为云Flexus+DeepSeek征文|华为云Flexus服务器dify高效的平台通过自然语言转sql并执行搭建电商数据分析

华为云Flexus+DeepSeek征文|华为云Flexus服务器dify高效的平台通过自然语言转sql并执行搭建电商数据分析pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: …

《独立开发者精选工具》第 019 期

IndieTools 是一个专为独立开发者打造的精选工具和资源平台。通过直观的分类,轻松找到 Web 开发、设计、营销、SEO 等全流程实用工具。 独立开发者必备网站:https://www.indietools.work Github: https://github.com…

备案个人可以做视频网站郑州 网站建设 东区

抖音的转场动画—iOS https://www.jianshu.com/p/29b0165de712 抖音的上下滑实现—iOS https://www.jianshu.com/p/e8799510c7aa转载于:https://www.cnblogs.com/qingzZ/p/10281740.html

什么网站做简历最好嘉兴网站排名优化报价

总结: ●使用模板时必须确定出通用数据类型T,并且能够推争出一致的类型 #include<iostream> using namespace std; #include<string> #include<fstream>//函数模板注意事项 template<class T> //typename 可以替换成class void mySwap(T&a, T&am…

实用指南:MyBatis 的动态 SQL

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

活着,就像明天就要死去一样

活着,就像明天就要死去一样本文来自博客园,作者:breezecn,转载请注明原文链接:https://www.cnblogs.com/breezecn/p/19126572

社保网站人员减少怎么做三门峡住房和建设局网站

Qt实现可伸缩的侧边工具栏 一直在网上找&#xff0c;发现大多的实现方案都是用一个按钮&#xff0c;按下控制侧边栏的伸缩&#xff0c;但是我想要实现鼠标悬浮在侧边栏的时候就伸出&#xff0c;移开就收缩的功能&#xff0c;也没找到好的参考&#xff0c;所以决定自己实现一个…

一 网站开发背景成都网站建设方案

全省工业互联网平台推广会上台州工业互联网平台发布、7个工业互联网项目签约——“企业间一座座孤立的烟囱&#xff0c;通过数据‘联姻’打破了信息孤岛。”5月22日&#xff0c;在路桥召开的全省工业互联网平台建设推广会上&#xff0c;专家们这样形容正在发生的变革。工业互联…

vue漏洞

Vue 源码泄露(最常见低危→高危) 原理: webpack 默认生成 .js.map,生产环境未关闭,可反编译还原完整源码,泄露接口、密钥、注释路径。 黑盒特征: 响应头 X-SourceMap: xxx.js.map 或 JS 末尾出现 //# sourceMap…

安居客网站应该如何做如何对产品进行推广

观看视频前&#xff0c;请先点击上面的蓝色字“杨式太极拳习练之家教学视频"再点击“关注”&#xff0c;这样您就可以继续免费收到太极拳剑相关教学视频了。加关注后&#xff0c;再【点击】上面的蓝色字“杨式太极拳习练之家教学视频"&#xff0c;进入到“杨式太极拳…

网站第一开在浏览器中打开慢的原因

发现有两个地方可能导致网页第一次在浏览器中打开慢。什么是第一次打开慢?测试的前提是,要先清空浏览器的缓存数据,然后重启浏览器手动输入域名测试。主要在 edge中测试。第一个地方 请求的数据太多 dh.xxxxx.com的…

1.Android Compose 基础系列:您的第一个 Kotlin 程序

1.Android Compose 基础系列:您的第一个 Kotlin 程序本系列文章将用通俗易懂的方式,带你入门使用 Jetpack Compose 进行 Android 应用开发。从 Kotlin 基础语法讲起,逐步构建属于你的第一个 Compose 项目。✨ 简介 …

蓬莱市住房和规划建设管理局网站做微信推送网站

物联网是当前非常火热的话题&#xff0c;各个行业对物联网的关注和投入力度也很大&#xff0c;一些互联网巨头都在紧锣密鼓的布局物联网产业&#xff0c;抢占市场先机。 物联网的整体构架大致可以分为以下四个层面&#xff1a; 1.感知识别层 感知层是物联网整体架构的基础&…

什么网站做蔬菜生鲜比较好建设银行泰安分行网站

当前电脑主要配件的批发价&#xff0c;不面向零售哦&#xff01;下面给大家介绍一下想获得详细报价&#xff0c;持续为您更新想了解电脑系统重装请回复&#xff1a;重装系统电脑由于windows10更新卡顿请回复&#xff1a;windows 10笔记本电脑购买常识请回复&#xff1a;笔记本电…

[JVM] JVM内存调优 - 教程

[JVM] JVM内存调优 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &…

网站设计说明wordpress网站搭建

苹果 iOS 18 系统将为 AirPods Pro 2 用户带来一项实用功能 —— 更精细的“自适应音频”控制。AirPods Pro 2 的“自适应音频”功能包含自适应降噪、个性化音量和对话增强等特性&#xff0c;可以根据周围环境自动调节声音和降噪效果。 当更新至最新测试版固件的 AirPods Pro 2…