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

CF2145 Educational Codeforces Round 183 (Rated for Div. 2) 游记

省流

高罚时开出三题,掉分 \(93\),心如止水。

10.6

内含剧透,请vp后再来。

不是题解!!!!!!!

赛前

前一天 \(qwsxza\) 一把上分 \(136\) 极大的激励了我,今天在电脑前不算这场 \(CF\) 已经坐了十个小时,今天打算把握住机会上分,毕竟我感觉 \(1800\) 这个分数对我来说还有上涨的机会。

赛时

看第一题,题目给了 \(n\) 个糖果,要求分给三个人,必须平分。问至少需要再买几个糖果才可以平分。直接对三取模,剩一个买俩剩俩买一个,\(1min\) 秒了。
接下来看 B 题,给了 \(n\) 张牌,进行 \(k\) 次操作,\(k \leq n \leq 2e5\)。操作有三种,第一种是移除牌堆顶一张牌,第二种是移除牌堆底一张牌,第三种是移除牌堆顶或牌堆底的一张牌。问所有操作结束后每张牌是留在牌堆内,被移除还是都有可能。显然前两种操作很好判断,直接按题意模拟就可以了,但第三种操作比较难办。我一开始是尝试从上下各全部走一次,重复的部分就是都有可能的,但发现不对。然后增加了一种两边轮换着放的再找重复部分,能过样例就交了一发,\(28min\) 吃一发罚时。
吃到罚时之后我知道我心态肯定要爆了,毕竟被 B 搞了这么半天,于是告诉自己先去做 C。C 是给了一个长度为 \(2e5\)\(01\) 串,要求删掉一个子串使 \(01\) 数量相等,问最短删除的子串长度。我一眼看出这个鬼东西必定是二分答案,然后码完二分答案模板之后开始卡住怎么去判断。花了(我感觉中的)好长时间终于反应过来可以存前缀和,把少的那个当成 \(-1\),多的那个当成 \(1\),然后在 \(mid\) 长度内的最小值和当前值之差如果大于等于 \(01\) 串中之差就可以删掉。在 \(53min\) 通过了这道感觉我正常应该 \(5min\) 秒了的题目。
此时回头望 B,发现其实我只需要去看所有情况下哪些点没变化过就行了,于是一开始全部删顶端并保持这个答案,然后每次把顶端删掉的一个换成底端删掉一个,直到删完。每次更改如果这两个点和一开始全部删顶端的答案不同则最终这个点是都有可能,否则就是按全删顶端的。\(60min\) 通过这题。
D 题要求构造一个长度为 \(n\) 的排列,\(n \leq 30\)。要求其中包含逆序对的子串的数量恰好为 \(k\)。发现 \(k\) 的数量不太大,于是考虑通过 \(k\)\(dp\)。然后发现对于一个序列,去邻项交换两个数 \(x\)\(x + 1\),而前面的数全部都是按顺序从 \(1\)\(x\),此时包含逆序对的子串的数量变化可以通过前面连续交换了多少个来 \(O(1)\) 求出。那么设计一个 \(DP\) 状态是当前从后往前邻项交换到第 \(i\) 个,前面连续交换了 \(j\) 个,此时子串数量为 \(k\) 的序列。然后这样就可以 \(30^5\) 的时间复杂度解决。不过由于时间原因,这个东西的转移也相当复杂,到最后样例也没调过。我也没有证明这样交换一定能拿到所有能拿到的状态。

赛后

其实这场我还算勉强满意,这是一场我把彻底的大败从谷底强行拉到半山腰了,如果以前 B 挂了往往就直接下班然后掉 \(200\) 分,但这场成功熬住了,算是最近的心态训练略有成效。
然后补 D,看了别人发的东西,一下子就知道该怎么做了。就是求逆序对子串数等于求总子串数减全是正序对的子串数,而全是正序对的子串数只与一个连续正序序列的长度相关,这样就可以直接构造当前局面下往后加一个长度为 \(i\) 的正序列,然后看和最后和答案是否相符。然而直接暴力枚举 \(30^{30}\) 显然很扯,可以观察到我们并不关心正序列之间的顺序关系,所以考虑只把正序列中长的放在前面,也就是 \(dfs\) 后再加的序列只能小于等于前一个序列的长度。不会计算,直接模拟了有 \(5600\) 种情况左右,完全够这题的数据范围,按照这个剪枝暴力就过了。
然后就是由于是 \(edu\) 场,赛后评测机占用严重,要等好几个小时才能评测,发现了一种插队的方法。就是评测机会优先评测 \(vp\) 状态下交的代码,那么开一把 \(vp\) 再提交代码就可以插队评测了,如果比较着急可以用。

2025年10月7日

http://www.hskmm.com/?act=detail&tid=26385

相关文章:

  • 52个AI工具
  • 可观测专题【左扬精讲】——《Go 语言实现企业级 APM 监控系统实战:从 0 到 1 搭建高性能监控平台》
  • 多区域多 VLAN 网络搭建与访问控制及服务器部署实验
  • Tina_Linux_系统软件 开发指南
  • 2025方钢、扁钢、圆钢、光轴、六角钢、异型钢、冷拉/冷拔方钢、冷拉/冷拔扁钢、冷拉/冷拔圆钢、冷拉/冷拔六角钢、冷拉/冷拔异型钢、热轧方钢/扁钢厂家权威推荐榜:坚固耐用与精准定制口碑之选
  • GO_基础2
  • LDO(一)FVF型LDO
  • 详细介绍:进阶智能体实战九、图文需求分析助手(ChatGpt多模态版)(帮你生成 模块划分+页面+表设计、状态机、工作流、ER模型)
  • 09. 常用控件
  • 201007
  • 苍穹外卖第一天(Maven、Git、Nginx反向代理)
  • Python中的数据结构
  • 2025家纺摄影公司/南通摄影公司权威推荐榜:创意拍摄与专业服务的口碑之选
  • 合成数据生成技术研讨会深度解析
  • 纯 C++ 开发的 Telegram Bot 框架
  • 六级自测
  • Python 中的链式操作——重点讲解链式调用
  • io设备概述
  • 多元线性回归-梯度下降法-吴恩达机器学习
  • 概率论小测试
  • AI 产品研发的一些思考
  • 3.模块化与MVVM设计模式
  • 2025舒适轮胎厂家、静音轮胎厂家企业品牌权威推荐榜:静音技术与驾乘体验口碑之选
  • 幻想是最廉价的止疼药
  • 20251005 耳朵龙字符串
  • 玩转树莓派屏幕之五:自定义LCD屏幕显示
  • AtCoder ARC207 总结
  • 2025.10.7模拟赛
  • 详细介绍:ZLG ZCANPro,ECU刷新,bug分享
  • 好好学习, 天天向上