4.7模拟赛总结

好难过,呜呜呜,树套树不配存活于世么

本来看到T1是个ds蛮兴奋的呜呜呜呜

时间安排

7.30-8.30

看题

8.30-9.50

T1 并且过掉了样例

9.50-10.30

T2 60 并且有了一定的拓展想法

10.30-11.50

先造了个T1的数据 发现会re 感觉是没调大栈的原因…

然后试了试1e4可以跑过去之后手写了个快读 但最后犹豫了一下还是没加

然后本来想写T3的十分,区间dp还是可做的,但是细节烦死个人,最后时间不够感觉写不出来,于是就躺了qwq

而且中间还在T2的满分中横条了一会

题目分析

T1

首先考虑直接做,发现线段树+可合并trie+树剖需要3log 不可做(这里的trie不需要可持久 呜呜)

然后考虑改变做法,把修改变成区间修改,查询变成单点查询,直接每个线段树节点维护一颗trie

这样虽然可以让时间复杂度降一个log,但是会导致空间复杂度升一个log

因为没写空间回收 这题又很卡空间 于是愉快re了

我恨

辣鸡离线做法 哼 树套树才是坠强的

T2

考虑 如果只有一位 答案是2

f [ 1 ] = 1 + 1 2 f [ 1 ] f[1]=1+\frac{1}{2}f[1] f[1]=1+21f[1]

然后考虑 每个数最多log次之后就一定只剩一位

所以可以记忆化搜索+dp 复杂度是对的,可以拿到60

接着考虑一种做法

我们可以把区间问题转换为前缀之差

(因为这个数据规模显然要考虑整体计算)

接着考虑 如果我们对于对于 r r r 端点 删除它的最高位,把后面的东西记作 s s s

我们本质就会得到 ‘1’+S,S,还有记录最大的 k k k 满足 2 k < r 2^k <r 2k<r之后, ( s , 2 k ] (s,2^k] (s,2k] 这一段

( s , 2 k ] (s,2^k] (s,2k] 这一段可以考虑用同样的前缀方法计算

于是我们最后应该就会得到许多零一段

然后要怎么计算呢…

这个做法感觉很对啊 每次可以让值域缩小一半 应该是log的

T3

不懂 ds+dp?

第二档分是区间dp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值