2022/7/12 考试总结

时间安排

8:00~8:40

T1看上去很友善,就直接写了个树背包,写的途中突然意识到合并是k^2的,过不掉。
于是只有40pts

8:40~9:20

这个题怎么看都像0/1分数规划,二分之后枚举中位数可以做到 O ( n 2 l o g n ) O(n^2logn) O(n2logn)
写完了之后发现怎么都过不掉样例,检查了一下发现中间有一个式子推错了。

9:20~10:00

改完之后发现枚举的中位数具有单调性,因此直接双指针扫一下,复杂度 O ( n l o g 2 n ) O(nlog^2n) O(nlog2n)
测了一下极限数据发现要2s,想了想发现并不会卡常,于是就先交了。

10:00~10:30

T1的链可以枚举区间端点做到 O ( n 3 k ) O(n^3k) O(n3k),可以过这一档

10:30~10:50

写T2的暴力

10:50~11:40

分析T2的特殊性质,subtask4似乎最好写,每个1的变化情况就是从某一时刻开始往右走,然后一直走,直到右边都是1结束,也就是说移动是一个区间,一开始想用平衡树/树套树维护这个东西,但是发现根本不会写,就放弃了。

考后总结

T1
首先,根本没有想到可以点分治/链分治
其次,一直在想怎么把背包合并的复杂度降下来,其实这种套路之前也见过很多次了,比如BZOJ4182 Shopping
,就是在 O ( n m ) O(nm) O(nm)的时间复杂度内解决树上依赖背包问题,思路也就是父亲和儿子公用一个背包数组,然后父亲的背包值可以直接从儿子继承,同时点分治过后,当考虑到某个子树时,可能与它相连的点一定是它的分治树上的祖先,可以在状压一下记录每个祖先是否选了。
下次再遇到树上背包一定要往这个方面想。
T3
可能是这种求最大平均数/中位数的题做多了,一看到这种问题就想0/1分数规划,根本没有分析原问题的性质。
只能说虽然套路做多了可以省掉很大一部分思考的时间,但是也很容易执着的认为就是这个套路,越陷越深,反而是题目本身就有特殊性质,直接做的复杂度更优秀。
越发觉得思维能力不够了,还是应该多做一些思维性的题啊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值