转化补集的思想,首先求出任意两点之间路径数目 然后求两条路径第一次相交在点k(按照拓扑排序的顺序)的数目,显然这里要用到容斥 然后pascal有坑爹的范围检测,所以运算中有些不会影响到答案但会爆int64的地方要判断一下 const inf=1e18; ..,..] of boolean; f:..,..] of int64; g:..] of int64; q,rd:..] of longint; a,b,c,d,n,m,x,y,i,j,k,h,t:longint; ans:int64; be…