UOJ Logo pink_rabbit的博客

博客

洛谷讨论区关闭打卡

2025-02-08 20:09:42 By pink_rabbit

谷民以后转战 UOJ 进行交流讨论吧!


发博客教程:点进个人主页,然后点“访问 <你的用户名> 的博客”,然后点上面的“日志”,左边有“写新博客”按钮

再换句话说就是访问 https://pink-rabbit.blog.uoj.ac/archive ← 这个链接(把 pink-rabbit 改成你自己的用户名)。


请大家报名 UOJ Round #29!!!


为了防止被管理员隐藏,我来推一个题:【MX-X8-T4】「TAOI-3」Warmth of the Eternity

题意简述:对于一棵 $n$ 个结点的有标号无根树,给出它每个点 $i$ 的度数 $d_i$ 以及删除该点后得到的 $d_i$ 个连通块的大小,问满足条件的原树有多少棵。答案对 $998244353$ 取模。保证至少存在一棵树满足条件,即取模前的答案非零。

数据范围:$2 \le n \le 3 \times 10^5$。


大家可以不用刷回复了,来想想这题咋做。


2025-02-09 更新:下面是该题出题人 251Sec 给出的做法。

删除某点后得到的连通块大小,其实就是以该点为根时的各孩子方向的子树大小。

回顾树的重心的定义,可以发现有了这些信息,就可以唯一确定该树的重心(可能是一个点,也可能是通过一条边相连的两个点)。

我们以重心为根,将无根树转化为有根树,并希望通过这种方式可以对树的可能结构有一个更清晰的把握。

现在我们可以获知每个点的子树大小,以及它所有孩子方向的子树大小。

  • Gorenstein 的问题:什么是“每个点的子树大小”?
    这里指以重心为根时的子树大小,即去掉最大的那侧连通块后剩下的点数(熟知重心的性质是重心所在的那侧是最大的子树)。

现在我们考虑一个点 $u$,假设它有一个孩子方向的子树大小为 $\mathit{siz}$,且存在另一个点 $v$,它自身的子树大小恰好也是 $\mathit{siz}$。考虑这个问题:是否总是能将 $v$ 接在 $u$ 的下方,形成一个合法方案?

答案是肯定的。因为考虑另一个合法方案,并假设在该方案中,$v$ 没有接在 $u$ 的下方。则该方案中必然有另一个点 $v'$ 接在 $u$ 的下方,且 $v'$ 自身的子树大小恰好也是 $\mathit{siz}$。考虑进行调整:互换 $v$ 与 $v'$ 的位置(包括它们的整个子树),则形成的新方案必然也合法。为什么呢?考虑 $u$ 的孩子的限制,去掉了一个 $v'$ 又加入了一个 $v$,而这两点的子树大小是相同的,所以不会破坏 $u$ 的孩子的限制的合法性。对于 $v$ 的父节点(记作 $u'$)也是同理,去掉了一个 $v$ 又加入了一个 $v'$,也不会破坏合法性。

故结论是:任意的 $(u, v)$ 配对都能导出合法方案,只需满足 $u$ 的一个孩子方向的子树大小恰好等于 $v$ 的子树大小。在这个配对完成后,$u$ 的那一孩子方向的子树就被占用了,不能在后续配对中使用。

下面考虑整体的方案数:

  • 对一个大小 $\mathit{siz} = k$,假设有 $a$ 个结点拥有孩子方向的子树大小恰好为 $k$ 的限制,且它们的这样的孩子方向个数分别为 $c_1, \ldots, c_a$,然后又有 $b$ 个结点的自身的子树大小恰好为 $k$。
  • 显然,应满足 $c_1 + \cdots + c_a = b$,因为完整的配对方案中,必须恰好一一匹配。
  • 不同的结点以任意顺序与同一个结点配对(接在同一个结点下方),产生的方案是相同的,故不能重复计入这些方案。
  • 可以发现,每个方案就相当于为 $b$ 个结点染上 $a$ 种颜色之一,且满足染第 $i$ 种颜色的点数恰好为 $c_i$。
  • 不难看出这就是多重组合数的组合意义,即 $\dbinom{b}{c_1, \ldots, c_a}$。
  • 不同的 $k$ 是互相独立的,用乘法原理乘在一起即可。

最终的答案为 $\displaystyle \prod_k \binom{b}{c_1, \ldots, c_a}$。

只需预处理组合数,就可在 $O(n)$ 的时空复杂度内解决该题。

同时感谢 Luke_limyeenewfiles 参与该题的讨论!(不难发现 myee 给出的做法等价于忽略“定重心为根”后的步骤。)你们为所有从洛谷前来 UOJ 的新用户开了个好头!希望大家友善讨论,减少对新用户的攻击,并引导他们改掉坏习惯,向善参与交流讨论。

我衷心相信,在所有热爱 UOJ 的用户的共同努力下,UOJ 的博客区可以从以往的死气沉沉,真正变成一个“多元、开放与包容”的学术讨论社区。一起努力吧!

评论

xiezheyuan
打卡!
xwh_Marvelous
+3
j27e
daka
Sving1024
qp
EternalAlexander
楼主是洛谷小学生吧?
Euler_function
风险预警:UOJ 变成灌水区了楼主全责。
Rainbow_sjy
6
yangzhiyao
qp
c_legg
打卡!
huanxue
打卡
bryce
打卡!
jiyunkun
打卡。
cancan123456
这是什么
xianhz
哈基兔哈气了
j27e
@pink_rabbit
TB__QGSS__423
打卡
ollo
+3
HakureiReimu_cjrljpx
# 洛谷讨论区倒闭后,我来到了UOJ,有点迷茫但会努力…… 大家好,最近洛谷讨论区突然倒闭了,心里空落落的,感觉少了一个重要的学习和交流的地方。在大家的推荐下,我来到了UOJ,虽然还不太熟悉这里的环境,但我会努力适应的! UOJ的界面很简洁,题目也很丰富,感觉是一个很适合深入学习的地方。不过,作为一个“初来乍到”的新人,还是有点迷茫。比如,题目的分类方式和洛谷有些不同,讨论区的氛围也需要慢慢感受。如果有熟悉UOJ的朋友愿意指点一下,真的非常感激! 虽然洛谷讨论区不在了,但学习的脚步不能停下。希望在UOJ能够找到新的归属感,继续和大家一起学习、一起进步。 如果有同样因为洛谷讨论区倒闭而来到UOJ的小伙伴,欢迎一起交流呀!我们可以互相帮助,一起在这个新环境中找到自己的节奏。
Summer_ring
楼主是洛谷小学生吧?
chen_zhe
楼主是洛谷小学生吧?

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。