最短路径-动态规划-无
来源:互联网 发布:windows gdi 图形编程 编辑:程序博客网 时间:2024/05/23 18:38
动态规划求有向无环图的最短路径
问题描述如下:
具体代码实现:
1 #include<stdlib.h> 2 #include<stdio.h> 3 #define x 9999 4 #define max 9999 5 int data[10][10]; 6 int dist[10];//记录最短路径为多少 7 int path[10];//记录最短路径 8 int kmin(int,int); 9 void fpath(int a[][10]);10 int froute(int a[][10]);11 void main()12 {13 int i,m;14 int a[10][10]={15 {x,4,2,3,x,x,x,x,x,x},16 {x,x,x,x,10,9,x,x,x,x},17 {x,x,x,x,6,7,10,x,x,x},18 {x,x,x,x,x,3,8,x,x,x},19 {x,x,x,x,x,x,x,4,8,x},20 {x,x,x,x,x,x,x,9,6,x},21 {x,x,x,x,x,x,x,5,4,x},22 {x,x,x,x,x,x,x,x,x,8},23 {x,x,x,x,x,x,x,x,x,4},24 {x,x,x,x,x,x,x,x,x,x}};25 26 /*for (i=0;i<10;i++)27 {28 for(j=0;j<10;j++)29 printf("%d ",a[i][j]);30 printf("\n");31 }*/32 fpath(a);33 printf("最短路径大小为: %d\n",dist[9]);34 35 m=froute(a);36 for(i=m-1;i>=0;i--)37 printf("最短路径经过: %d\n",path[i]);38 }39 void fpath(int a[][10])40 {41 int i,j,k;42 dist[0]=0;43 for(i=1;i<10;i++)44 {45 k=max;46 for(j=0;j<i;j++)47 {48 if(a[j][i]!=x)49 if((dist[j]+a[j][i])<k)50 k=dist[j]+a[j][i]; 51 }52 dist[i]=k;53 }54 }55 int froute(int a[][10])56 {57 int j,b,k=1,i=9;58 path[0]=10;59 while(i>0)60 {61 for(j=i-1;j>=0;j--)62 {63 if(a[j][i]!=x)64 {65 b=dist[i]-a[j][i];66 if(b==dist[j])67 {68 path[k++]=j+1;69 i=j;70 break;71 }72 }73 74 }75 }76 return k;77 }78 79 80
0 0
- 最短路径-动态规划-无
- 动态规划 最短路径
- 动态规划 最短路径
- 最短路径 动态规划
- 最短路径(动态规划)
- 动态规划法求多段图的最短路径
- 最短路径问题 动态规划
- 动态规划最短路径问题
- 动态规划 显示最短路径
- 动态规划、最短路径、Floyd算法
- 动态规划之最短路径
- 动态规划算法--最短路径问题
- 最短路径(动态规划dp)
- 动态规划-最短路径个数问题
- 城市交通网(动态规划,最短路径,输出最短路径)
- 多段图的最短路径问题-----动态规划法
- 动态规划之Bellman-Ford最短路径
- 动态规划 0/1 背包问题, 最短路径问题
- APP开发实战165-利用工具减少APP大小
- Mysql 中的 table engine ,及各种engine的区别和作用
- Git 团队开发工作流
- 深入理解Java虚拟机--读书笔记2/3
- LeetCode#100. Same Tree
- 最短路径-动态规划-无
- Polygon Mesh Processing 2010
- 蓝桥杯 算法训练 纪念品分组(简单贪心)
- linux Linux里提示cannot find -lXXX解决办法
- ansible 变量优先级
- spark内核架构
- 496. Next Greater Element I(Stack-Easy)
- Samba服务器搭建
- 蓝桥模拟题 还款计算(二分搜索)