4.7模拟赛总结
Posted Flame♡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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+\\frac12f[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
以上是关于4.7模拟赛总结的主要内容,如果未能解决你的问题,请参考以下文章