题意:给出n个数,有一些特定要求,形如x,y表示x一定要在y的左边,求排列方案数。
一早上死想序列做法,想到了一下连边然后否决了。。然后想出了50分的容斥或者状压,然后觉得100分是不是再优化一下啥的,然后就再没脱出坑。。
事实证明部分分做法不一定是正解做法的暴力版本。。
首先有一个条件就是每一个人最多提出一个要求。
那么连边后的dag是一个森林,不相交的n棵树。
那么对于每一棵树,我们从下往上扫,记录当前走过的点数,设为sz,那么有:
g[x]∗=g[v]∗C(size[x