HDU 1874 畅通工程续
来源:互联网 发布:apache插件 编辑:程序博客网 时间:2024/06/07 20:55
转载请注明出处:http://blog.csdn.net/a1dark
分析:一道最短路的水题、用dijkstra水过。。。
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define N 250#define INF 0x7fffffffint mpt[N][N];int dist[N];int vis[N];int m,n;void dijkstra(int x){ memset(vis,0,sizeof(vis)); for(int i=0;i<n;i++) dist[i]=mpt[x][i]; vis[x]=1; dist[x]=0; for(int i=0;i<n-1;i++){ int mink=INF,v; for(int j=0;j<n;j++){ if(vis[j]==0&&dist[j]<mink){ mink=dist[j]; v=j; } } vis[v]=1; for(int j=0;j<n;j++){ if(vis[j]==0&&mpt[v][j]!=INF&&mpt[v][j]+dist[v]<dist[j]) dist[j]=mpt[v][j]+dist[v]; } }}void init(){ for(int i=0;i<N;i++) for(int j=0;j<N;j++) { if(i==j)mpt[i][j]=0; else mpt[i][j]=INF; }}int main(){ while(scanf("%d%d",&n,&m)!=EOF){ init(); int s,e,v; for(int i=1;i<=m;i++){ scanf("%d%d%d",&s,&e,&v); if(v<mpt[s][e]){ mpt[s][e]=v; mpt[e][s]=v; } } int start,end; scanf("%d%d",&start,&end); dijkstra(start); if(dist[end]!=INF) printf("%d\n",dist[end]); else printf("-1\n"); } return 0;}
- HDU 1874 畅通工程续
- hdu 1874 畅通工程续
- hdu 1874 畅通工程续
- hdu 1874 畅通工程续
- HDU 1874 畅通工程续
- HDU 1874 畅通工程续
- HDU 1874 畅通工程续
- HDU 1874 畅通工程续
- HDU 1874 畅通工程续
- hdu 1874 畅通工程续
- hdu 1874 畅通工程续
- hdu 1874 畅通工程续
- hdu 1874 畅通工程续
- HDU 1874 畅通工程续
- hdu 1874 畅通工程续
- HDU 1874 畅通工程续
- HDU 1874 畅通工程续
- hdu 1874(畅通工程续)
- Linux0.11内核--idt(中断描述符表的初始化)head.s分析
- opengl环境配置
- 为什么写技术博客对新人如此重要?
- Oracle -- ORA-00119 错误解决方法 此法也可解决ORA-91078 LRM-00109错误
- Struts2+Spring整合时异常 - FileNotFoundException
- HDU 1874 畅通工程续
- Exercise4.3 E2
- Win7开自带的虚拟WIFI
- 将pygame文件打包成.exe文件
- g斯蒂芬格式的
- 位运算的实例
- 数据的查询,更改和删除
- python simplejson模块的使用方法
- Notification应用(包括添加为“正在进行的”)