专栏文章

题解:P12445 [COTS 2025] 数好图 / Promet

P12445题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minibg26
此快照首次捕获于
2025/12/02 02:53
3 个月前
此快照最后确认于
2025/12/02 02:53
3 个月前
查看原文

[COTS 2025] 数好图 / Promet

有点厉害的数数题。
可以发现 k=0k=0 的答案和 k=2k=2 的答案是相同的,为了防止 corner case 直接不考虑 k=0k=0 的求解。
称满足存在 1u1\rightarrow uunu\rightarrow n 的点构成的 DAG 称为主 DAG。首先考虑主 DAG 上的点满足什么性质,只保留主 DAG 上的点后 11 号点必有出度,nn 号点必有入度,其余点必定有入度和出度。
那么此时 k=nk=n 的情况就很好做了。考虑钦定必有出度,容斥入度。设 fi,jf_{i,j} 表示前 ii 个点,钦定了有 jj 个点入度为 00,转移时考虑当前点有没有钦定入度,转移乘个系数即可。最后可以对于每个 nn 用二项式反演求出 k=nk=n 的答案。需要注意因为 11 号点必定没有入度所以最终容斥时要钦定最后一个点必选(具体见代码)。
那么现在我们可以对于任意 kk 确定其主 DAG 了,考虑将剩下的点挂上去。
考虑对剩下的点分为 11 号点能到达和 11 号点不能到达两类。称主 DAG 上的点为 11 类点,剩下点中 11 号点可到达的点为 22 类点,剩下点中 11 号点不可达的点为 33 类点
考虑不同点之间的连边。
  1. 11 类点
    由于 33 类点不能从 11 号点到达,而 11 类点可以从 11 号点到达,所以 11 类点不能连 33 类点,因此 11 号点可以连 1,21,2 号点。
  2. 22 类点
    因为其不在主 DAG 上又能从 11 到达,所以其不能到达 nn,只能连 22 类点。
    同时由于该类点的定义,必须有至少一个 11 类点或一个 22 类点与其相连
  3. 33 类点
    其可以连向任意点,因为其不可以从 11 号点到达,所以连不连没有影响。
由于主 DAG 上的点(即 11 类点)之间的连边已经被确定,所以只需要考虑其它种类的连边。设 gi,j,kg_{i,j,k} 表示前 ii 个点,有 jj11 类点,kk22 类点。转移考虑当前点是哪一类,根据上面的连边方式转移即可,时间复杂度 O(n3)\operatorname{O}(n^3)
考虑优化。可以发现对于 33 类点其实不在意可以连接的 11 号点和 22 类点分别有多少个,只关心其总共有多少个。于是重新设计状态,设 gi,jg_{i,j} 表示前 ii 个点有 jj11 类点,其它都是 22 类点的连边方案。设 hi,jh_{i,j} 表示前 ii 个点,有 jj33 类点的方案。最终枚举得到 112233 类点分别有多少个,乘上系数即可。时间复杂度 O(n2)\operatorname{O}(n^2)
细节比较多,具体可以见代码。

评论

0 条评论,欢迎与作者交流。

正在加载评论...