UOJ208 UOIP十合一(提交答案)

  首先对每张图都去掉自环。

  1:给出的就是DAG。答案即为2m

  2、5:显然每个SCC之间互相独立。这两个点都满足SCC中的点很少。于是对每个SCC暴力枚举边集判环,而SCC之间的边显然选不选没有影响,每有一条边就乘2即可。

  3:所有点出度都为1。构成环套树森林,处理一下环的贡献即可。

  6:是一张有向完全图,那么也就要求n个点的有标号DAG个数,一个经典问题。可以枚举至少有多少个点入度为0进行容斥,则f[i]=Σ(-1)j·C(i,j)·2j*(i-j)·f[j]。可以进一步套上多项式那套理论,当然与本题无关我也不太会。

  7、8:点数较少,考虑状压dp,设f[S]为考虑完S内部的边后,点集S是DAG的方案数。转移同样考虑内部至少有哪些点入度为0进行容斥,复杂度O(3n)。但这个复杂度需要预处理g[S1][S2]表示S1集合向S2集合连了多少条边,而8号点n达到了20,空间并不能开下。于是时间换空间,改为预处理g[S][i]表示S集合向i号点连了多少条边,转移时再进行合并,复杂度O(n·3n)。8号点大约跑个5~10min的样子?

  4、9、10:咕掉了咕掉了。

原文地址:https://www.cnblogs.com/Gloid/p/10841529.html