最短路径问题
来源:互联网 发布:旅游策划师 知乎 编辑:程序博客网 时间:2024/06/05 19:09
自己做了几道最短路的问题,其实Dijkstra算法我自己原来就知道思想,但是我自己明明知道思想却对吧这些思想写成代码无从下手!!!
我真的不知道该怎么去做
第一: 我该用什么样的方式去存这个图呢? 从a到b有c的权值我到底该怎么去存这样的路?这样的表?我第一反应就是结构体 我用结构体存这个图。。嘻嘻
但是很快我就发现了问题,用结构体存太麻烦。特别是我在访问的时候,加入是单向图的话还行,但是我刚刚做的题不是单向路径啊!,于是我想到用数组存这样的表,嗯,我们可以先存a,b,之后在存link[a][b]这样就好啦!然后我再做link[i][j]=link[j][i];这样的话马上就做了一个邻接矩阵了吧?嘻嘻,还有一点就是在初始化的时候要把link[i][i]这样的点初始化成0,这样的话我们访问的时候只要做一个一重循环就好了,对了,我在做题的时候还有一个问题就是a到b有多条路怎么办呢? 这个相当重要了,我们一般只需要存边最小的就可以了,所以我们在输入数据的时候就可以对这条边进行判断啦!满足条件再存起来就好啦。。嘻嘻
第二:我该怎么去找到这个点第一次连接到其他点的距离呢?,开始我用结构体存的时候就想到这个问题,那样的话我们得访问结构体的a和b岂不是太浪费时间了?所以我们用二维数组的话就可以分号的解决这个问题了哦!
第三:当我找到了这个最近的点我该怎么去做这个松弛操作呢? 横简单啦,想想就感觉简单,可是就怪我当时我想不出来,5555555
明天我要给桂茹讲这个算法,期待我能讲好一点,让桂茹听懂哈!!
下面我给一个简单的代码给大家看看该怎样操作
题目传送门”:http://acm.hdu.edu.cn/showproblem.php?pid=1874
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int link[1000][1000];int dis[201];#define INF 100000int main(void){ int n,m,a,b,i,j,sh,t; int begin,end,Min; int vis[200]; while(scanf("%d %d",&n,&m)!=EOF){ for(i=0;i<1000;i++){ for(j=0;j<1000;j++){ if(i==j) link[i][j]=0; else link[i][j]=INF; } } memset(vis,0,sizeof(vis)); for(i=0;i<m;i++){ scanf("%d %d",&a,&b); scanf("%d",&t); if(t<link[a][b]){ link[a][b]=t; link[b][a]=link[a][b]; } } scanf("%d %d",&begin,&end); vis[begin]=1; for(i=0;i<n;i++){ dis[i]=link[begin][i]; } while(1){ sh=-1; for(i=0;i<n;i++){ if(!vis[i]&&(sh==-1||dis[i]<dis[sh])) sh=i; } if(sh==-1) break; vis[sh]=1; for(i=0;i<n;i++){ dis[i]=min(dis[i],dis[sh]+link[sh][i]); } } if(dis[end]!=INF) printf("%d\n",dis[end]); else printf("-1\n"); }}
- 最短路径问题
- 最短路径问题
- 最短路径问题
- 最短路径问题
- 最短路径问题
- 最短路径问题
- 最短路径问题
- 最短路径问题
- 最短路径问题
- 最短路径问题
- 最短路径问题
- 最短路径问题
- 最短路径问题
- 最短路径问题
- 最短路径问题
- 最短路径问题
- 最短路径问题
- 最短路径问题
- bootstrap兼容IE6、7、8版本(IE9以下版本)
- 自测4. Have Fun with Numbers
- SAP NOTE 691154 DATA_TRANSFORM和 HIER_TRANSFORM 的说明
- C++:关于C++的RTTI (运行阶段类型识别)
- openCV学习笔记(7):cvRectangle与cv::rectangle的用法
- 最短路径问题
- 用数组来处理求Fibonacci数列问题
- android动态加载已安装apk中的方法
- hdu 1233 还是畅通工程
- iframe父子页面互相调用、控制
- 深度学习介绍(四)卷积操作
- xxx定律 HDU3782
- 第三周项目一有默认参数的构造函数
- 【每周技术文】生活已经不再纯粹了。