3/22 考后总结

在编程竞赛中,作者对三个题目进行了详细的时间管理和解题策略分析。T1是一个可能涉及建图的问题,通过不断尝试优化到了n^3log的解决方案。T2通过离散化得到40分的解决方案,赛后意识到可以使用线段树合并来处理。T3则涉及到排列和奇偶性的讨论,找到以4个数为单位保持奇偶性不变的解题策略。
摘要由CSDN通过智能技术生成

时间安排

7:30–7:40 读题,T1 感觉是个建图题,T2 dp ,T3 构造。
7:40–9:20 T1,对于特殊情况可以分类讨论,然后考虑怎么建图,经过不断试错后瞎猜一手结论,经过简单证明感觉没啥问题,于是有 n^3log 的图。
9:20–9:40 T2, 有显然的 n^2 暴力。
9:40–10:10 回头看了一眼T1,发现貌似可以进一步优化建图,于是有 nm 的建图。
9:40–10:30 T3,想一想暴力怎么做,发现好像没法做。可以直接随机化莽,对于暴力分范围比较小可以轻松通过。然后简单打了个表,没有什么规律。
10:30–11:40 T2,考虑能不能拉插,好像没啥用。然后发现值域可以直接离散化,于是有 40 分。想到有另一种容斥角度的做法,但是感觉复杂度差不多,而且还带个 min 。

回顾反思

T2:
赛时想到了容斥的角度,不过感觉复杂度差不多而且还带着 min 不好维护就弃了。
不过显然 min 是可以拆成前后缀的和的形式的,而且对于一个点在值域上只有一个位置有初值,完美契合线段树合并的形式。于是直接线段树合并就行了。
线段树合并可以很好的处理前后缀的形式。
min、max 的函数可以拆成前后缀。
值域大的时候要么可以插值要么经分析只有离散化后的点有用。

T3:
神奇的构造。
首先一个套路是,对一个排列进行若干 swap ,每次 swap 逆序对的奇偶性取反。那么若操作后的排列与目标排列奇偶性不同必然不符合要求,否则可以大胆猜测一定有解。很多这样构造排列的题目可以围绕奇偶性讨论。
于是发现,若符合要求, n 在模 4 意义下为 0 或 1 。
如果剩下 0 或 1 个数必然合法。那么先暴力操作使得每个数对应的值都符合要求,然后以 4 个数为一个单位操作保持这样的符合要求的局面不变就行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值