只需要在求最短路径从中转节点dist等于直达的dist是再加上中转节点的price小于直达的price条件即可:
if(dist[t]==-1||dist[t]>dist[newp]+c||dist[t]==dist[newp]+c&&price[t]>price[newp]+price){//该节点最短路径无穷或路径大于新加入节点最短路径+该边权值
dist[t]=dist[newp]+c;
price[t]=price[newp]+price;
}
只需要在求最短路径从中转节点dist等于直达的dist是再加上中转节点的price小于直达的price条件即可:
if(dist[t]==-1||dist[t]>dist[newp]+c||dist[t]==dist[newp]+c&&price[t]>price[newp]+price){//该节点最短路径无穷或路径大于新加入节点最短路径+该边权值
dist[t]=dist[newp]+c;
price[t]=price[newp]+price;
}