hdu 2544 最短路(dijkstra)
2015-08-16 15:08
375 查看
刚学dijkstra,最短路径简单题,我却wa了好多次。。。真是傻啊,还一直找不出错误在哪,这么简单的问题。原
来是我初始化的时候把点与点的距离都初始化为0了。应该初始化为无穷大才可以。。因为输入不会出现所有的点,
意思就是有的点与点之间可能没有路径,所以要初始化为无穷大。最重要的一点是不能用 limits头文件里面的
INT_MAX,否则会一直wa的。。。我也不知道为什么。。。
代码:
唉,最近考驾照,这几天可能刷不了多少题目了,还有两个专题没有看。。。图论没有刷,好多人学驾照,好多人排队,好麻烦。。。慢慢熬吧。
来是我初始化的时候把点与点的距离都初始化为0了。应该初始化为无穷大才可以。。因为输入不会出现所有的点,
意思就是有的点与点之间可能没有路径,所以要初始化为无穷大。最重要的一点是不能用 limits头文件里面的
INT_MAX,否则会一直wa的。。。我也不知道为什么。。。
代码:
<span style="font-family:Courier New;font-size:18px;">#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<vector> #include<set> #include<string> #include<algorithm> //#include<climits>//这个用不了,一用就会wa,我也不知道为啥。。。 #define INT_MAX 100100000; using namespace std; int gra[105][105]; int d[105]; int m,n; void dijkstra() { int i,j; int visit[105]; for(i=1; i<=n; i++) d[i] = INT_MAX; d[1] = 0; memset(visit,0,sizeof(visit)); for(i=1; i<=n; i++) { int x, y=INT_MAX; for(j=1; j<=n; j++) { if(!visit[j] && d[j] <= y) y = d[x = j]; } visit[x] = 1; for(j=1; j<=n; j++) { if(!visit[j]&&(d[j]>d[x]+gra[x][j])) d[j] = d[x] + gra[x][j]; } } return ; } int main() { int i,j,a,b,c; while(cin >> n >> m,m||n) { //memset(gra,0,sizeof(gra)); for(i=1; i<=n; i++) for(j=1; j<=n; j++) { if(i==j) gra[i][j] = 0;//写成0或者最大都无所谓,因为访问过的已经不再访问了,所以不会出现gra[i][i] else gra[i][j] = INT_MAX; } for(i=1; i<=m; i++) { cin >> a >> b >> c; gra[a][b] = gra[b][a] = c; } dijkstra(); cout << d << endl; } return 0; } </span>
唉,最近考驾照,这几天可能刷不了多少题目了,还有两个专题没有看。。。图论没有刷,好多人学驾照,好多人排队,好麻烦。。。慢慢熬吧。
相关文章推荐
- Codeforces Round #313 (Div. 2)-B. Gerald is into Art
- 【HNOI2010】【BZOJ2002】Bounce 弹飞绵羊
- 15.4——构造函数与复制控制
- Codeforces Round #316 (Div. 2) D. Tree Requests
- 两分钟彻底让你明白Android中onInterceptTouchEvent与onTouchEvent(图文)!
- 第86讲:Scala中For表达式的生成器、定义和过滤器
- 75 Sort Colors
- RedHat Enterprise Linux7.0安装Oracle12c
- FxMaker用法
- 网络编程TCP(五)
- Codeforces 570D,dfs+位运算
- Codeforces Round #313 (Div. 2)-Currency System in Geraldion-水题
- css3,可以为一个元素添加多个动画
- junit单元测试(keeps the bar green to keeps the code clean)
- 编写高质量代码改善C#程序的157个建议——建议49:在Dispose模式中应提取一个受保护的虚方法
- 【EasyUI】——可编辑的DataGrid
- 搞数据抓取搞得整个人都不好了
- CodeForces 447C
- 屌丝男初中丰富的工作实践反击
- 计算字符串绘制所需宽高