几个问题:
- 哪里有板子题?
- 那三个判定是什么意思能解释一下吗?
if(d1[y]>d1[x]+z){
d2[y]=d1[y];
d1[y]=d1[x]+z;
if(!v[y]) v[y]=1,q.push(y);
}
if(d2[y]>d2[x]+z){
d2[y]=d2[x]+z;
if(!v[y]) v[y]=1,q.push(y);
}
if(d1[y]<d1[x]+z&&d2[y]>d1[x]+z){
d2[y]=d1[x]+z;
if(!v[y]) v[y]=1,q.push(y);
}
请不要说用A*和Dijkstra,这样有点大材小用。