关键词:DAG图上s到t的路径统计
求s到t特殊路径统计,路径上每条边<u,v>满足dt[u]>dt[v],dt[i]是i到达t的最短路。
满足dt[u]<dt[v]的路径一定是DAG图,因此问题化归为统计DAG图上s->t的路径数目
1.统计DAG图上任意一点到达t的路径数目
num[i]:i到达t的路径数目,由DAG图的dp性质,num[u]+=num[v],v是u的后继。
<span style="font-size:14px;">void dfs(int u,int t){//DAG图上的dp过程 含记忆化搜索思想
if(num[u]) return;
for(int i=0;i<g[u].size();i++){
int v=g[u][i].to,w=g[u][i].w;
if(d[v]<d[u]) { dfs(v,t),num[u]+=num[v]; }
}
if(u==t) num[u]=1;//特殊条件
}</span>
2.统计DAG图上s到达任意一点的路径数目