hdu 2544(Dijkstra)
来源:互联网 发布:淘宝店铺的公司介绍 编辑:程序博客网 时间:2024/04/29 07:35
题目链接:点击打开链接
题目分析:Dijkstra的简单应用,给出源点(1号节点)和目的地(n号节点),求出最短路径,自己结合教材YY的代码
题目小结:DIjkstra的无向图应用
#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#define INF 0x3f3f3fusing namespace std;int grid[105][105],ans=0;void Dijkstra(int n){ int min_dis,i,dis[105],w,v,s; bool intree[105]; ans=0; for(i=1;i<=n;i++) { intree[i]=false; if(grid[1][i]==-1) dis[i]=INF;//先处理初始和源点相连的结点,若没有直接相连则赋值INF else dis[i]=grid[1][i]; // } v=1;dis[1]=0,intree[1]=true;//intree 记录是否加入了新集合 for( i=1; i<=n&&!intree[n];i++)//由于只求到n的最短路,所以其他可以省略 { min_dis=INF; for(w=1;w<=n;w++) if(!intree[w]) if(dis[w]<min_dis){v=w; min_dis=dis[w];} intree[v]=true; for(w=1;w<=n;w++)//用于更新到源点的最近距离 { if(!intree[w]&&(min_dis+grid[v][w]<dis[w])&&grid[v][w]!=-1) { dis[w] = min_dis + grid[v][w] ; } } } ans=dis[n];}int main(){ freopen("in.txt","r",stdin); int n,m,i,a,b,c; while(scanf("%d%d",&n,&m)&&(n||m)) { memset(grid,-1,sizeof(grid));//表示ij 之间没有路径 for(i=1;i<=m;i++) { scanf("%d%d%d",&a,&b,&c); grid[a][b]=grid[b][a]=c; } Dijkstra(n); printf("%d\n",ans); } return 0;}
- hdu 2544 (dijkstra)
- hdu 2544(Dijkstra)
- hdu 2544 最短路(Dijkstra 备忘)
- HDU 2544 最短路(Dijkstra)
- hdu 2544 最短路(水题,dijkstra)
- HDU 2544 最短路 (Dijkstra || SPFA)
- HDU - 2544 最短路 (Dijkstra)
- hdu 2544 最短路 (dijkstra算法)
- hdu 2544 最短路(dijkstra||spfa)
- HDU 2544 最短路(Dijkstra)
- hdu 2544 最短路(dijkstra)
- hdu 2544 最短路(dijkstra)
- HDU 2544 最短路(dijkstra)
- hdu 2544 最短路 (dijkstra,floyd)
- hdu 2544最短路(Dijkstra)
- HDU 2544 最短路(Dijkstra)
- hdu 2544最短路(Dijkstra)
- HDU - 2544 最短路(Dijkstra)
- android 中 系统日期时间的获取
- linux lsof命令详解
- listview中嵌套gridview时候,getview多次调用的bug
- WIZnet 11月新闻报
- 本地推送
- hdu 2544(Dijkstra)
- Linux下如何使用Vi编辑器
- linux-rpm 打包之helloworld
- AndroidAnnotations——Annotation recipes 注解使用方法
- Date、Calendar、Timestamp
- Qt函数quit(),exit()以及close()的区别
- 详解大端模式和小端模式
- android The method setOnClickListener(View.OnClickListener) in the type View is not applicable for
- 【二分图匹配(最小路径覆盖)】hdu 1151 Air Raid