3/1考试总结

本文记录了一次编程竞赛的时间安排和解题过程,涉及T1到T4四个题目。T1使用简单模拟,T2利用差分约束,但未能有效删除多余元素;T3题目的二分答案和区间覆盖问题在比赛中未解决。作者反思了在状态压缩暴力和区间包含性质的运用上存在的不足,强调了解题时要考虑清楚再动手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时间安排

7:30–7:40 读题,T1 貌似模拟一下就行了,T2,T3,T4 不知道是个啥
7:40–9:00 T1,简单模拟。T4,发现对于暴力可以维护并查集做,那么对于正解可以维护其所在连通块编号的 hash 值,启发式合并一下就行了。
9:00–10:40 T2,对于 r<=20 有状压暴力,对于特殊档可以把树建出来。写完发现有些情况没考虑到,调试调试。对于正解,发现第一问可以直接差分约束,然后可以得到一个构造,问题在于这个构造最后可能会多出来一些东西,不会删。
10:40–11:40 T3, k=0 是送分的。考虑怎么暴力,发现不会暴力。二分答案时显然的,问题是每次二分如何计算答案,无奈写了个二分 + 乱搞。发现问题等价于 0 1 段的覆盖,不会。

回顾反思

T2:
赛时想到了差分约束,但不会去除构造中多余的元素。分析容易发现取最小的大于每个区间左端点的值就可以了。分析性质的能力还是要加强。
另一方面前面的部分分耽误时间太长了,有一部分是码之前没有考虑完全导致的。动手一定要想清楚。
T3:
二分答案是显然的。
有性质,必然存在一个最优解使得每次的操作区间呈互相包含的关系,于是就可以设第 t 次操作以 r 为右端点最大的左端点是 dp t,r之类的暴力 dp 。
对于一个 0,1 序列,每次选取一个 1 的个数大于 0 的个数的区间全部赋为 1 ,直到全 1 ,所用次数是 log 级别的。
比赛的时候没有想到区间包含的性质,于是就没法做下去了。
对于正解还不太会。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值