(c语言)旅游规划 (25分) |
您所在的位置:网站首页 › 旅游规划怎么收费 › (c语言)旅游规划 (25分) |
关于数据结构Mooc后的每一道答案 基本我都已经给出了详解 希望能对大家有所帮助 收藏一下也是方便大家查找吧 希望大家一起进步! (c语言)浙大数据结构Mooc作者答案集 原题题目上面那道题做出来后 做这个题简直不要太简单好吗? 但是为什么我调试了半小时呢???? 因为我是hape 忘记高速公路是双向的了:) 我真的吐了 高速公路是双向的我都忘了 我还以为是单形道 还亏我拿了驾照 真的是科一科二科三科四白考了 气死了 思路如果是做出来Hard Version再来看这道题解析的话 如果是还没思路的话 真的可以挨打了 很经典的用Dijkstra算法来解了 我都不想说什么了 看代码吧 一点弯都没绕 代码实现 #include #define MAXN 510 #define INF 999999 typedef struct { int kilometers; int charges; } Highway; Highway G[MAXN][MAXN]; int highways,cities,start,destination; int Visit[MAXN]; //初始化图 void InitGraph() { int i,j; for(i=0;i if(i==j) { G[i][j].kilometers = 0; G[i][j].charges = 0; } else { G[i][j].kilometers = INF; G[i][j].charges = INF; } } } return; } //Visit初始化 void InitVisit() { int i; for(i=0;i scanf("%d %d %d %d",&tempstart,&tempdestination,&kilometers,&charges); G[tempstart][tempdestination].kilometers = kilometers; G[tempstart][tempdestination].charges = charges; G[tempdestination][tempstart].kilometers = kilometers; G[tempdestination][tempstart].charges = charges; } return; } //Dijkstra算法 void ReDijkstra() { int i,j,k,temp,min; for(i=1;i if(!Visit[j] && G[start][j].kilometers if(G[start][k].kilometers > G[start][temp].kilometers + G[temp][k].kilometers) { G[start][k].kilometers = G[start][temp].kilometers + G[temp][k].kilometers; G[start][k].charges = G[start][temp].charges + G[temp][k].charges; } //唯一需要注意当路径一样时 更便宜的直接把更贵的替换掉 else if(G[start][k].kilometers == G[start][temp].kilometers + G[temp][k].kilometers) { if(G[start][k].charges > G[start][temp].charges + G[temp][k].charges) G[start][k].charges = G[start][temp].charges + G[temp][k].charges; } } } printf("%d %d\n",G[start][destination].kilometers,G[start][destination].charges); } int main() { int i,j; scanf("%d %d %d %d",&cities,&highways,&start,&destination); InitGraph(); InitVisit(); InsertHighways(); ReDijkstra(); return 0; } 结束语明天要考四级了 现在也是没有准备:) 也是祝自己好运吧 希望高中高考136的英语不要给我丢人就好了hhhh 要过要过要过 这样我就可以不用早读了 算法部分和大家一起努力! |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |