Codeforces Round #743 比赛记录(vp)
赛时:ABCD
赛后:ABCDE
题解
A,B俩沙比题
C: 考虑使用拓扑排序计算每个章节是哪一轮被理解的。对于一个依赖关系 (表示 依赖 ),设 在第 轮被理解。如果 ,那么 被理解的轮数至少为 。但如果 ,那 被理解的轮数就至少是 了,因为它是再也没可能在同一轮中被理解了。
因此,设 表示 被理解的轮数。有:
这样,拓扑排序随便做。
D:首先,注意到: 位置的值,只可能是后缀奇数若干个东西的异或。我们看看长度为奇数的后缀里,有没有异或和为 的。如果没有,就gg。
否则,设 满足 为奇数,且 异或和为 。首先,我们让 区间都变成 。发现,每个两个操作一下,就能让 位置为 ,且前面连续相邻的两个,都是一样的。
即,.... aa bb cc ... xx 0
的形式。aa
表示相邻两个一样的数,bb,cc
同理。然后这边我们可以用 步,让它们都变成 。
对于前面,我们可以先用一步把两个变成一样,然后再做一步,把两个一样的变成 。这样,两步做两个,总体上是对的。
但是最后可能剩下 位置不太对,要判一下。
E:显然可以 区间dp。
脑子一转,一定有那么一个最优解的颜色是取在区间两端的。左/右均可。为啥呢?假设它没取到端点,那端点的颜色肯定被动过。我们把动它的那次,去掉。然后最后一步的时候,可能除了这个端点之外,还有一大块,我们把省下的这个操作,去做那个大块。然后区间颜色还是一样,操作次数一样,而颜色就变成了端点的颜色。
处理掉端点处一长段连续相同的情况。然后,。
再注意到,这个 的颜色一定和 一样,做完了。或者说,和 一样,一定能取到最优解。
为啥呢?假设 一样。由于我们处理掉了一长段连续相同,那只需要考虑中间那些不一样的情况。中间那些不同的地方,怎么也得先做掉,才能再连上 。因此, 一定会先处在一个断开的状态。我们直接用这两个dp拼起来的方法做,就是这种方案的答案了。
因此,我们记一下pre,k不断跳pre转移。由于相同颜色数只有20种,复杂度是 ,就能过了。
实况&总结
最近不知道得了什么病,打代码的手感下降了,感觉键盘不是我自己的一样。
3min秒了A,但是B开始就出锅了。B的锅小,修了10min修好了,稍微有些紧张,还交错题交到A上去了qaq
为什么做不到打完码就能A呢?
做C题的时候家里来了个查煤气表的,并没有太大影响,我是拿着草稿本出去接待他的(
然后我就想到了一个拓扑排序。打完,啪的一下,挂了!WA on 2
暴露一个问题,我拓扑排序打的不熟练,且会打出锅
此时我就开始慌了,就在猜哪边出了问题。都没猜对,贡献3发WA。
以后先把所有问题都看一遍,减少不必要的WA
慌忙之下开了D。然后我发现这玩意我也会!打完之后,啪的一下,也挂了!WA on 2。
我超!同时挂两个!真就练心态了呗
那咋整啊。我现在会四个题,但同时有两个大锅!我也不能干啥,总不见得开E吧,再来一个锅?于是我选择了对拍
2h比赛对拍,真有你的!
极 限 运 动
存疑:如何增加对拍的速度呢?
然后我拍了1h把C搞定了。那个数据生成器,稍作改动,啪的一下D也拍好了。
此时还剩10min。原本想睡大觉的,一想,我还是继续做吧!然后就去开E
精神可嘉!但是,你会吗?
很好,不会。显然一个 的dp是会的,然后我开始猜转移点。
大方向对了!结论?
我看出来一个性质,最优解一定存在一种,是取在区间的端点上的。
接下来,我猜这个转移点距离l,r不超过20。没有得到证明,我纯猜,然后猜错了。再加上我实现的不精细,我当时是TLE的。
多组数据千万不要memset!都给我for循环!
赛后继续去看了题解,完成了E题。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】