【学习笔记】NOIP暴零赛2
细思极恐,我的能力已经退步到这个地步了吗?
数据结构
这题的修改是强行加进去迷惑你的。
考虑怎么求树的带权重心。
完了我只会树形dp
完了完了
结论:设 u u u的子树和为 s z u sz_u szu,所有点权值和为 s s s,那么树的带权重心等价于,满足 s z u ≥ ⌈ s 2 ⌉ sz_u\ge \lceil\frac{s}{2}\rceil szu≥⌈2s⌉且深度最大的点 u u u。
似乎机房大部分人都想到了这一点,只有我是joker???
道理很简单。显然这个条件是必要的。其次, u u u肯定在根节点所在的重链上,并且满足条件的点一定是重链的一段前缀,容易发现只有这一段前缀的结尾那个点能作为树的重心。
下面的分析就很简单了。
第一种方法,我们只要能确定一个点一定在重心的子树内,然后从这个点往上跳即可。下一步比较构造,考虑在 dfn \text{dfn} dfn序中找到第一个满足前缀和 ≥ ⌈ s 2 ⌉ \ge \lceil\frac{s}{2}\rceil ≥⌈2s⌉的点,这个点一定在重心的子树对应的那段 dfn \text{dfn} dfn序上,换句话说一定在重心的子树内,往上跳即可。注意树的重心可能有两个,因此 u u u的父亲也可能是重心,所以当子树和恰好是 s 2 \frac{s}{2} 2s时要返回 u u u的父亲。又因为点权可能为零,因此最后要先跳一段 0 0 0再返回父亲。
第二种方法,记录上一次重心的位置,如果是对链操作,那么新的重心一定在链端点的祖先上,如果是对子树操作,那么新的重心可能在 u u u的祖先上,也可能在 u u u的重链上,直接在重链上跳即可。
复杂度 O ( n log 2 n ) O(n\log^2 n) O(nlog2n)。
签到
吐槽:好好的题,为什么要强行套上高精度这样恶心的东西?单纯为了恶心选手吗?
把容斥的式子写出来: ( − 1 ) ∣ S ∣ ( n + m + ( c − 1 ) ∣ S ∣ − ∑ i ∈ S b i m ) (-1)^{|S|}\binom{n+m+(c-1)|S|-\sum_{i\in S}{b^i}}{m} (−1)∣S∣(mn+m+(c−1)∣S∣−∑i∈Sbi)
然而直接组合数非常难算。但是注意到 m m m很小,因此我们可以把组合数看成一个多项式。
刚开始想的是一些比较特殊的情况,可以简单递推求出,但是发现对于普通的情况难以处理,感觉数位 d p dp dp部分又比较麻烦于是就一无所获了。
首先把
n
n
n转化成
b
b
b进制,然后枚举
∣
S
∣
|S|
∣S∣。为什么我想不到正解的思路呢 注意到
∑
i
∈
S
b
i
\sum_{i\in S}b^i
∑i∈Sbi的数位上都是
1
1
1,因此我们枚举一段前缀就不用考虑负数的情况。问题转化为,从
1
,
2
,
.
.
.
,
m
1,2,...,m
1,2,...,m中选
k
k
k个数,记作集合
T
T
T,对于每个
i
∈
[
1
,
m
]
i\in [1,m]
i∈[1,m],求每种情况下
(
∑
j
∈
T
b
j
)
i
(\sum_{j\in T}b_j)^i
(∑j∈Tbj)i的和。最简单的想法是,每次加入一个数时,用二项式定理暴力展开。这可以用
O
(
n
4
)
O(n^4)
O(n4)的
d
p
dp
dp预处理求出。
总复杂度
O
(
n
4
)
O(n^4)
O(n4)。一道将数位
d
p
dp
dp,容斥,多项式,高精度强行拼凑的辣鸡的毒瘤签到题
我为什么要写这个代码
爆搜
不会。只会 O ( 2 n poly ( n ) ) O(2^n\text{poly}(n)) O(2npoly(n))的做法。
似乎大家t2都挂分了,但是只有我t2是不会做,我好菜啊???
__EOF__

本文链接:https://www.cnblogs.com/cqbzly/p/17530034.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」