概述
首先对每张图都去掉自环。
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
最后
以上就是魔幻银耳汤为你收集整理的UOJ208 UOIP十合一(提交答案)的全部内容,希望文章能够帮你解决UOJ208 UOIP十合一(提交答案)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复