2022/8/2 考试总结

博主分享了竞赛中的时间安排,涉及T1的树状搜索优化到O(logn)、T2的dp改进、T3的FFT异或卷积技巧,强调了实战中对数据结构和算法理解的重要性。

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

时间安排

7:30~8:00

写了个T1,T3的暴力。

8:00~9:00

T1显然可以二分答案之后枚举lca,复杂度 O ( n l o g 3 n ) O(nlog^3n) O(nlog3n)有72分,写完调完。

9:00~10:00

T1因为树的形态随机,所以直接dfs一遍树把所有合法的二元组用数据结构维护就行了。
复杂度 O ( 1 ) − O ( n ) O(1)-O(\sqrt n) O(1)O(n )或者 O ( l o g n ) − O ( l o g n ) O(logn)-O(logn) O(logn)O(logn)感觉分块很悬于是写了线段树二分。

10:00~11:10

T3是max卷积和异或卷积的拼合体,所以分别做就行了,复杂度 O ( n 2 l o g n ) O(n^2logn) O(n2logn),有62分。

11:10~11:30

写T2的暴力

11:30~12:00

链的部分显然可以用组合数算,又想了一会dp发现不太会。

考后总结

T2

其实是个很简单的dp,设 f [ i ] [ j ] f[i][j] f[i][j]表示i的子树内选了j个点access的方案数,然后钦定每个状态被可以得到这个状态的最少花费处计算,考场上没想到这一点。其余部分就是简单地树背包。
还是要练习dp的水平。

T3

异或对于每一位是独立的,因此对于每一位分别用FFT差卷积计算方案数,再用max卷积合并,这样的好处是不需要FWT,复杂度 O ( n l o g 2 n ) O(nlog^2n) O(nlog2n)
另一种做法是用数位dp统计,不过还没看懂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值