2022 CCPC 网络预选赛

M 签到题 答案有一个下界 (n-1)/(k-1) 向上取整 可以直接构造出答案 从而证明这个下界可以取到。

L 一棵树要求删去k条边使得剩下的连通块最小的最大。
直接考虑删k条边怎么做 先二分一个mid 然后求删的最大次数 容易得到一个贪心做法从叶子节点向上返的时候开始切。
由于k取1~n 这个做法是 n^2logn 的。
反过来考虑枚举块的大小求至多切多少次 可以发现两次块大小之间的次数的答案可以被得到,这样的做法是n^2的。
综合上述两种做法 在块小于n的时候求,此时次数一定小于sqrt(n) 这部分可以求出nn的次数的答案。
再对小于n的次数采用上述二分做法 这样我们得到了nS+nSnlogn的做法 笔者无能卡不过去。
考虑正解 如果还是根据次数来求少不了对每个次数进行二分,进行整体二分的复杂度也不正确。
我们考虑对块大小来求至多多少次。考虑利用线段树来维护当前以x为根的子树内块大小为k的情况。
为了暴力更新无疑是n^2log的 可以考虑进行dsu on tree.
具体的 对于重儿子直接继承为了及时更新答案里面每个位置保存的信息为当前节点为w-res[w] w为需要的大小 res[w]为已经贡献的大小。
继承重儿子显然全体-1 考虑轻儿子对于大于轻儿子的大小的k来说显然是一个区间减 否则就暴力的将轻儿子的线段树给遍历了这一复杂度为轻儿子子树大小*logn
进行合并完后 开始在当前线段树内找到小于等于0的位置更新即可。
由于每个点遍历logn次总复杂度nlog^2 对于线段树里的更新 为 (n1+n2+...nn)logn 显然接近nlog^2
考虑空间大小 好像不太好算但是可以动态的回收空间 动态空间的复杂度为nlogn
仔细思考 如果是动态开点的话 空间复杂度最多和时间复杂度相同。
为什么我写的分块就卡不过啊啊啊。

K 英语 交互 题 真麻烦。
容易想到第一次压y 第二次压2y 这样做即可。
需要写高精度 队友神仙会python。

J 看不懂题解的证明。

I 差分题。不会。

H 注意审题 容易想到K=2rl1x(l+r)(rl+1)l=Lxr=Rx

枚举k的因数且小于105 可以先分解质因数 再爆搜搜一下再判断。剪枝不可少。

G 题意很难理解其实是找到一个串使得在前缀出现也在后缀出现 考虑答案不超过一个串的一半 trie树上直接跑dp即可。

F 计算几何。不会。

E 求s匹配t的最大长度。注意到连续的大写字母可以合并。那么s的样子为 low-A-low-A-low...的样子。

匹配问题,我们倒序dp。在每个A处开出f数组fi,j表示到了第i个大写字母处接下来匹配到t串的第j位的最大长度。

对A后的low跑KMP来匹配t来枚举转移 当且仅当 当前的low完全和t匹配上再接上low后的A

注意边界与细节即可。

D 沙比的数据结构,不会。

C 注意到1 2,2 1的特殊情况 2 4 =1,4 2=2,4 8=2,8 4=2 之后每乘2答案加1.

B 分类讨论 难度还行。

A 模拟

posted @   chdy  阅读(399)  评论(3编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2019-09-17 9 16 模拟赛&关于线段树上二分总结
2018-09-17 图论——最小生成树
点击右上角即可分享
微信分享提示