这是一个有向图(可能有环),边权均为正整数。
fi 是 1~i 的最短路(保证正确),本人想求解 di 表示 1~i 的最短路的方案数,但是有一组大数据错了,求条。感谢dalao!
struct ab{
int u;
bool operator <(const ab &x)const{
return f[u]>f[x.u];
}
};
void dij(){
priority_queue<ab>q;
vas[1]=1;
d[1]=1%mod;
q.push(1);
while(!q.empty()){
ab up=q.top();
q.pop();
int u=up.u;
for(no vt:nw[u]){
int v=vt.v,l=vt.l,x=f[u]+l;
if(x==f[v]){
(d[v]+=d[u])%=mod;
if(!vas[v]){
vas[v]=1;
q.push(v);
}
}
}
}
}