hdu1874我的第一篇最短路
来源:互联网 发布:c 后台调用前台js 编辑:程序博客网 时间:2024/05/29 14:33
这是我写的第一篇最短路,开完例会后有一些小清楚,之后又看了看lrj大神的算法竞赛,照葫芦画瓢的写上了核心代码。虽然还不是很熟练,再找找水题aa试试。
这一题要注意几点:
一:写进map的是最短距离,要和length进行比较;
二:初学者要注意memset只能用-1,0;
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>const int INF=1e9;using namespace std;int map[200][200];int vis[200];int dis[200];void dijkstra(int from,int to,int n){ memset(vis,0,sizeof(vis)); dis[from]=0; vis[from]=1; for (int i=0;i<n;i++){ dis[i]=map[from][i]; } for(int i=0;i<n;i++){ //在未标记的节点中,求出d值最小的节点x int x,m=INF; for(int y=0;y<n;y++){ if(!vis[y]&&dis[y]<=m){ m=dis[x=y]; } } vis[x]=1; for(int y=0;y<n;y++){ dis[y]=min(dis[y],dis[x]+map[x][y]); //(体现出最短路) } }}int main(){ //freopen("int.text","r",stdin); int n,m; while(~scanf("%d%d",&n,&m)){ for(int i=0;i<n;i++)//注意不能使用memset(map,INF,sizeof(map)); for(int j=0;j<n;j++) map[i][j]=INF; for(int i=0;i<200;i++)map[i][i]=0; int from,to,length; while(m--){ scanf("%d%d%d",&from,&to,&length); if(length<map[from][to]){ map[to][from]=map[from][to]=length; } } scanf("%d%d",&from,&to); dijkstra(from,to,n); if(dis[to]==INF)cout<<-1<<endl; else cout<<dis[to]<<endl; } return 0;}
0 0
- hdu1874我的第一篇最短路
- hdu1874最短路
- hdu1874 Dijkstra 最短路
- 最短路 hdu1874
- 最短路模板 HDU1874
- hdu1874 最短路模板题
- hdu1874(最短路spfa)
- 最短路之Dijkstra---HDU1874
- hdu1874-畅通工程续(最短路)
- hdu1874 畅通工程续 (最短路)
- 最短路问题 以hdu1874为例
- HDU1874--畅通工程续--最短路
- 畅通工程续(hdu1874,floyd最短路)
- hdu1874 畅通工程续 最短路
- hdu1874 畅通工程续 最短路
- hdu1874 畅通工程续(单元最短路)
- 最短路(hdu1874)Floyd算法
- HDU1874-畅通工程续-最短路(dijkstra)
- OCP-1Z0-053-V12.02-568题
- 自己写一个库函数strcpy(转)
- debug_objects_early_init
- if语句应用输入月份输出对应季节举例
- Hibernate与struts2合作开发的必然问题:java.lang.NoSuchMethodError: antlr.collections.AST.getLine(),请删多余jar包
- hdu1874我的第一篇最短路
- android 三星左侧快捷菜单实现原理
- hibernate缓存机制详细分析
- TCP socket异常关闭总结
- CSS :active 伪类
- Java中常见的接口与类----String类
- libnids api
- 测测你的体重
- Unity脚本的生命周期中几个重要的方法