哦,我懂了
by yukimianyan @ 2021-10-03 21:19:14
正确的做法可以是建一张反图跑 mdfs
```cpp
int dfs(int u){
if(!f[u]) return f[u];
int cnt=u==s;
for(int i=r.head[u];i;i=r.nxt[i]){
int v=r[i].v,w=r[i].w;
if(dis[u]==dis[v]+w){
cnt+=dfs(v);
}
}
return f[u]=cnt;
}
```
by yukimianyan @ 2021-10-03 21:21:35