zoukankan      html  css  js  c++  java
  • hdu 2066 一个人的旅行(最短路问题)

    最短路·································


    类似的问题还有好多不会!慢慢学吧!!!!、

    进步,哪怕每天一点也行!


    (恋爱不是小事,确实小事的积累!(听着酷狗音乐台说的,很有道理))

    #include<stdio.h>

    #include<string.h>
    #define  MAX 10000000


    int map[1010][1010];
    int main()
    {
    int t,s,d,a,b,time,i,qidian[1010],zhongdian[1010],juli[1010],v[1010],j;
    while(scanf("%d%d%d",&t,&s,&d)!=EOF)
    {
    for(i=0;i<1010;i++)
    for(j=0;j<1010;j++)
    {
    if(i==j)
    map[i][j]=0;
    else
    map[i][j]=MAX;
    }
    for(i=0;i<t;i++)
    {
    scanf("%d%d%d",&a,&b,&time);
    if(map[a][b]>time)//防止出现重边
    {
    map[a][b]=time;
    map[b][a]=time;
    }
    }
    for(j=0;j<s;j++)
    {
    scanf("%d",&qidian[j]);
    map[qidian[j]][0]=0;
    map[0][qidian[j]]=0;
    }
    for(i=0;i<d;i++)
    scanf("%d",&zhongdian[i]);
    for(i=0;i<1010;i++)
    juli[i]=MAX;
    juli[0]=0;
    memset(v,0,sizeof(v));
    for(i=0;i<=1000;i++)
    {
    int w,m=MAX;
    for(j=0;j<=1000;j++)
    {
    if(!v[j]&&juli[j]<=m)
    m=juli[w=j];
    }
    v[w]=1;
    for(j=0;j<=1000;j++)
    {
    if(juli[j]>juli[w]+map[w][j])
    juli[j]=juli[w]+map[w][j];
    }
    }
    int min=MAX;
    for(i=0;i<d;i++)
    if(juli[zhongdian[i]]<min)
    min=juli[zhongdian[i]];
    printf("%d ",min);
    }
    return 0;
    }



    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2066

  • 相关阅读:
    IOS苹果手机背景音乐不能自动播放问题
    手机自动刷视频方法
    elementUI form表单验证不通过的三个原因
    微信扫码登陆js
    地址转码方式
    css 过渡样式 transition
    vue项目打包踩坑记
    overflow
    怎么学习正则表达式?(正则的使用心得)
    微信小程序(template的使用)
  • 原文地址:https://www.cnblogs.com/riskyer/p/3233830.html
Copyright © 2011-2022 走看看