3/12 考后总结

作者在编程竞赛中面临时间压力,对三个题目(T1、T2、T3)使用不同策略。T2的树剖矩乘想法未能实现,但赛后发现有高效解决方案。T3的多项式方法起初被认为复杂度过高,但实际可行。作者反思应更注重复杂度分析和测试数据的严谨性,避免丢失部分分。
摘要由CSDN通过智能技术生成

时间安排

8:30–8:50 读题,T1应该是神秘数据结构什么的,T2,T3 都是 dp 。感觉 T2,T3 都比较可做,T2 复杂度感觉有点紧很神秘。
8:50–9:40 T2, 有简单的 dp ,然后时间复杂度很紧跑了整整 10s 。卡了卡能够在 2s 左右通过大数据。有矩乘的想法,但是理论复杂度还没暴力优,就没去写。
9:40–10:50 T1,有暴力四到五维偏序的做法,不过带一堆 log 啥都过不掉。发现可以高维树状数组,写了写发现跑的飞快。
10:50–11:50 T3,有暴力 dp 。分析一下发现每次只是移位和继承两种形式的转移,而且只和深度有关,考虑着能不能长剖,好像不太行。然后发现可以将转移关系看成多项式的形式,那么对于一条链可以 O 1 转移,问题在于合并链时只能暴力合并。感觉复杂度不太对。
11:50–12:40 思考 T3,卡T2 .

回顾反思

T2:
想到了树剖矩乘,但是感觉复杂度几乎不对就没写。
然而事实是一大堆写树剖卡常过去的而且跑的飞快。
很神秘。
一个技巧是对于一条重链预处理整条链的信息,这样如果要跨过整条链就不用再查询了。(虽然说这是比较基础)。

可惜的一点是丢了 20 分部分分。赛时写了个暴力 dp ,对于有特殊限制的部分分感觉是可过的,于是就没造很强的数据去拍,结果 T 掉了。如果我留个心眼去拍或者专门写个分段,也是很好写的,就可以多拿 20 了。
不要眼高手低。

T3:
赛时想到了维护多项式的做法,然后觉得复杂度不对。
然而事实是复杂度是对的。

对于一条链链上每个点 O 1 转移,若干链 O 最小深度 的合并,复杂度大概是个 nlog 左右的。反正绝不是直觉上的 n^2 。
分析复杂度这块还是要多想想。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值