hdu 1874 畅通工程续
来源:互联网 发布:python调用shell脚本 编辑:程序博客网 时间:2024/06/04 19:24
第一次接触最短路问题,折腾了一下午,基本框架出来了,可总是卡在一些细节。。。
关键最后还有一个可能有重复路段,需要取其中最小值。。。伤不起
#include<stdio.h>#include<string.h>#define mi 9999999#define min(a,b) (a>b? b:a)int map[202][202];int vis[202];int divs[202];int ans;int n,m;void prim(int b){ int k; for(int j=1; j<n; j++) { int min=mi; for(int i=0; i<n; i++) if(!vis[i]&&min>divs[i]) { min=divs[i]; k=i; } vis[k]=1; for(int i=0; i<n; i++) if(!vis[i]&&divs[k]+map[k][i]<divs[i]) divs[i]=divs[k]+map[k][i]; }}int main(){ while(~scanf("%d%d",&n,&m)) { memset(vis,0,sizeof(vis)); for(int i=0; i<n; i++) { for(int j=0; j<n; j++) map[i][j]=mi; map[i][i]=0; } int a,b,c; for(int i=0; i<m; i++) { scanf("%d%d%d",&a,&b,&c); map[a][b]=min(map[a][b],c); map[b][a]=min(map[b][a],c); } scanf("%d%d",&a,&b); for(int i=0; i<n; i++) divs[i]=map[a][i]; divs[a]=0; prim(b); printf("%d\n",divs[b]==mi?-1:divs[b]); } return 0;}
后来,在学习spfa算法的时候,又回头做了这道题。
附上代码:
#include<stdio.h>#include<string.h>#include<queue>using namespace std;int map[202][202];int vis[202];int d[202];int n,m;int s,e;void spfa(){ queue <int> q; int a; q.push(s); for(int i=0; i<n; i++) d[i]=0x7ffffff; d[s]=0; vis[s]=1; while(!q.empty()) { a=q.front(); q.pop(); vis[a]=0; for(int i=0; i<n; i++) { if(d[i]>map[a][i]+d[a]) { d[i]=map[a][i]+d[a]; //printf("**%d %d %d %d\n",i,d[i],map[a][i],d[a]); if(!vis[i]) { q.push(i); vis[i]=1; } } } }}int main(){ while(~scanf("%d%d",&n,&m)) { int a,b,c; memset(vis,0,sizeof(vis)); for(int i=0; i<n; i++) for(int j=0; j<n; j++) map[i][j]=0x7ffffff; for(int i=0; i<m; i++) { scanf("%d%d%d",&a,&b,&c); map[a][b]=map[b][a]=map[a][b]>c?c:map[a][b]; } scanf("%d%d",&s,&e); spfa(); if(d[e]==0x7ffffff) printf("-1\n"); else printf("%d\n",d[e]); } return 0;}
0 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(畅通工程续)
- Mac上intellij 13新建javaweb项目并用tomcat 7启动
- OCP-1Z0-053-V13.02-458题
- 【安卓笔记】图片特效之灰度效果
- jQuery AJAX —篇四 $.getJSON()
- JDK proxy
- hdu 1874 畅通工程续
- 黑马程序员_Java语句
- struts2理论简答题
- poj 3140 Contestants Division(树dp)
- SAS学习经典书籍&方法
- 并查集(Union-Find)算法介绍——转载dm_vincent的博客文章(CSDN blog)
- java设计模式16——迭代子模式(Iterator)
- 直方图蓄水问题 Trapping Rain Water
- Maven插件之portable-config-maven-plugin(不同环境打包)