问题标题: 酷町堂:6178 运输石油

0
0
陈喆鹏
陈喆鹏
资深光能
资深光能
#include<iostream>
#include<cstring>
using namespace std;
bool vis[510];
int n,m,x,dis[510],g[510][510];
void dijkstra(int s){
    memset(vis,-1,sizeof(vis));
    memset(dis,0x3f,sizeof(dis));
    dis[s]=0;
    while(true){
        int u=-1;
        for(int i=1;i<=n;i++)
            if(!vis[i]&&(u==-1||dis[i]<dis[u]))
                u=i;
        if(u==-1)break;
        vis[u]=1;
        for(int i=1;i<=n;i++)
            if(dis[u]+g[u][i]<dis[i]){
                dis[i]=dis[u]+g[u][i];
            }
    }
}
int main(){
    cin>>n>>m>>x;
    int u,v,l,c;
    for(int i=1;i<=m;i++){
        cin>>u>>v>>l>>c;
        g[u][v]=g[v][u]=l+x/c;
    }
    dijkstra(1);
    cout<<dis[n];
}

 为什么连样例都过不去


0
0
吕若朴
吕若朴
中级光能
中级光能

请认真读一读题,整体的运输量是经过的所有管道的运输量的最小值。总的运输时间是是所有管道的运输时间之和。你这样一条管道一条管道的算时间,能过去才怪

0
0
0
0
0
0
我要回答