分析:
很显然,最长路径一定是唯一的。
考虑这么证明:对终点v而言,所有不在路径上的点一定指向它。
然后,对于次终的点u而言,如果它指向任意一个不在路径上的点,那么可以通过u->x->v,得到一条更长的路径,所以所有不在路径上的点也一定指向它
……
综上,除了最长路径以外,所有点都指向这条路径。
那么,就可以DP了
定义 D P ( i , j ) DP(i,j) DP(i,j)表示:i个点的竞赛图,构成最长长度为j的路径的方案数。
显然,对于不在路径上的点,其两两之间任意连边均可,唯一要考虑的就是路径上的点。
因此, 若 i > j 若i>j 若i>j, D P ( i , j ) = D P ( j , j ) ∗ 2 C ( i − j , 2 ) DP(i,j)=DP(j,j)*2^{C(i-j,2)} DP(i,j)=DP(j,j)∗