1512: [POI2006]Pro-Professor Szu
首先把边反向, 问题转化成求从主建筑楼走向各个点的方案数。 然后缩点,块中的方案数可以直接算。
设f[i]表示走到第i个点的方案数。
显然f[i]=∑f[j](存在newedge(j,i))初始时,f[belong[n + 1]]=1。
对于任意一个siz[i]>1的点,如果f[i]>0,那么显然有无数种走法,直接设为maxn+1。
然后进行拓扑图上DP。
代码自己的并没有调出来......先不上传了。
首先把边反向, 问题转化成求从主建筑楼走向各个点的方案数。 然后缩点,块中的方案数可以直接算。
设f[i]表示走到第i个点的方案数。
显然f[i]=∑f[j](存在newedge(j,i))初始时,f[belong[n + 1]]=1。
对于任意一个siz[i]>1的点,如果f[i]>0,那么显然有无数种走法,直接设为maxn+1。
然后进行拓扑图上DP。
代码自己的并没有调出来......先不上传了。