【水向】Atcoder杂题
[AGC005C] Tree Restoring
已经意识到了我很可能做不出来这道题。。。
选择路径最短的节点作为根节点。 c u c_u cu 表示整棵树的深度。
注意到这样一个性质:从 x x x 出发的最长路径 x − > y x->y x−>y , y y y 一定是树的直径的一个端点。
我们同时知道, f m a x ( x ) f_{max}(x) fmax(x) 一定是直径的某一端点
对于 f : A − > B f : A -> B f:A−>B,对于 x ∈ [ 1 , n ] x \in [1,n] x∈[1,n] ,都有唯一的 y ∈ [ 1 , n ] y \in [1,n] y∈[1,n] 与之对应。 这个 y y y 一定是端点。
对于每一个点,它到直径都有一个交点,否则与直径的最长性矛盾。路径长度的下限是 a n / 2 a_n/2 an/2 ,再考虑路径中间的特殊位置即可。
[AGC013E] Placing Squares
不难想到矩阵乘法。
f x − 1 = ∑ y = 1 x − 1 f y ∗ ( x − y − 1 ) 2 f_{x-1}=\sum_{y=1}^{x-1} f_y*(x-y-1)^2 fx−1=∑y=1x−1fy∗(x−y−1)2
g x − 1 = ∑ y = 1 x − 1 f y ∗ ( x − y − 1 ) g_{x-1}=\sum_{y=1}^{x-1} f_y*(x-y-1) gx−1=∑y=1x−1fy∗(x−y−1)
h x − 1 = ∑ y = 1 x − 1 f y h_{x-1}=\sum_{y=1}^{x-1} f_y hx−1=∑y=1x−1fy
f x = ∑ y = 1 x − 1 f y ∗ ( x − y ) 2 + 0 f_x=\sum_{y=1}^{x-1} f_y*(x-y)^2 + 0 fx=∑y=1x−1fy∗(x−y)2+0
= f x − 1 + 2 g x − 1 + h x − 1 =f_{x-1}+2g_{x-1}+h_{x-1} =fx−1+2gx−1+hx−1
g x = ∑ y = 1 x − 1 f y ∗ ( x − y ) + 0 g_x=\sum_{y=1}^{x-1} f_y*(x-y) + 0 gx=∑y=1x−1fy∗(x−y)+0
$ =g_{x-1}+h_{x-1}$
h x = h x − 1 + f x h_x=h_{x-1}+f_x hx=hx−1+fx
$ =f_{x-1}+2g_{x-1}+2h_{x-1}$
我们有两种策略:
-
换一种dp状态
-
优化dp转移方式 ( l o g n ) (logn) (logn)
时间复杂度 O ( m l o g n ) O(mlogn) O(mlogn)。
考虑修改。这道题做完了。观察发现只有 h x h_x hx 这一项会变化。
[AGC006B] Median Pyramid Easy
构造题。。。
以我的智商怎么可能想出来。。。
考虑每一层是所对应的下一层的中位数,考虑将大于等于 x 的置为1,小于 x 的置为0。
分类讨论一下:
- (0,0,0) => (0)
- (0,1,0) => (0)
- (0,1,1) => (1)
- (1,1,1) => (1)
显然第 3 种情况最优吧,考虑尽量把所有数转化成1。
上述算法太笼统了,并不能很好地满足条件。正解是构造两个相邻的 m。其实也不难。
[AGC006D] Median Pyramid Hard
考虑二分答案。
如果最后剩下的数是1,说明实际的数更大。考虑如何对于01序列确定操作后剩下的数。
事实上为1可以等价转化为cnt_1 \req 2
由浅入深。考虑n=2的情况,显然只需要1的个数 \req 2。
考虑连续的01块。这题大概就做完了吧。
*[AGC001C] Shorten Diameter
贪心没毛病。
我们知道删除叶子节点后直径的长度最多减少1。
直径的中心点实际上是在一直变化的。
[AGC001D] Arrays and Palindrome
比较惭愧的是题目没读懂。
题目的中心问题其实是使得满足回文串性质的一定由相同字符构成。进一步说,也就是满足连边后存在一笔画。
而我们知道一笔画存在的必要条件是:
- 连通图
- 度数为1的点小于等于2个
体现在本题中,奇回文串就会产生一个度数为1的点。这样的点不能超过2个。
剩下的分类讨论就行了。构造方案也很容易想出来吧,就是尾对尾,把奇数放在序列两端就好了。因为这两个点一定是路径的起点和终点,放在特殊位置会容易一些。
然后就是我主要考虑了全为2的情况,才想到首位构造奇数块来达到交错的目的。
__EOF__

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