hdu 1863 [【最小生成树】+hdu2544【floyed】+hdu1874【dijdtra】~~~~模板复习~~~
来源:互联网 发布:js金沙娱乐190768 编辑:程序博客网 时间:2024/06/06 12:45
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1863
#include<stdio.h>#include<string.h>#define inf 0x3f3f3f3f#define N 120int book[N],w[N][N],min,dis[N];int main(){ int m,n,i,j,t1,t2,t3,s,e,u,flag,sum; while(scanf("%d%d",&m,&n),m!=0) { for(i = 0; i <= n; i ++) for(j = 0; j <= n; j ++) if(i == j) w[i][j] = 0; else w[i][j] = inf; for(i = 1; i <= m; i ++) { scanf("%d%d%d",&t1,&t2,&t3); if(t3 < w[t1][t2]) { w[t1][t2] = t3; w[t2][t1] = t3; } } if(m < n-1) { printf("?\n"); continue; } memset(book,0,sizeof(book)); for(i = 1; i <= n; i ++) dis[i] = w[1][i]; book[1] = 1; sum = 0; for(i = 1; i < n; i ++) { min = inf; for(j = 1; j <= n; j ++) { if(!book[j]&&dis[j] < min) { u = j; min = dis[j]; } } book[u] = 1; sum += min; for(j = 1; j <= n; j ++) if(!book[j]&&dis[j] > w[u][j]) dis[j] = w[u][j]; } flag = 0; for(i = 1; i <= n; i ++) if(!book[i]) { flag = 1; break; } if(flag) printf("?\n"); else printf("%d\n",sum); } return 0;}
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874
#include<stdio.h>#include<string.h>#define inf 0x3f3f3f3f#define N 110int w[N][N];int main(){ int n,m,i,j,k,t1,t2,t3; while(scanf("%d%d",&n,&m),n!=0&&m!=0) { for(i = 0; i <= n; i ++) for(j = 0; j <= n; j ++) if(i == j) w[i][j] = 0; else w[i][j] = inf; for(i = 1; i <= m; i ++) { scanf("%d%d%d",&t1,&t2,&t3); if(t3 < w[t1][t2]) { w[t1][t2] = t3; w[t2][t1] = t3; } } for(k = 1; k <= n; k ++) for(i = 1; i <= n; i ++) for(j = 1; j <= n; j ++) if(w[i][j] > w[i][k]+w[k][j]) w[i][j] = w[i][k]+w[k][j]; printf("%d\n",w[1][n]); } return 0;}
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544
#include<stdio.h>#include<string.h>#define inf 0x3f3f3f3f#define N 220int book[N],w[N][N],min,dis[N];int main(){ int m,n,i,j,t1,t2,t3,s,e,u; while(scanf("%d%d",&n,&m)!=EOF) { for(i = 0; i <= n; i ++) for(j = 0; j <= n; j ++) if(i == j) w[i][j] = 0; else w[i][j] = inf; for(i = 1; i <= m; i ++) { scanf("%d%d%d",&t1,&t2,&t3); if(t3 < w[t1][t2]) { w[t1][t2] = t3; w[t2][t1] = t3; } } scanf("%d%d",&s,&e); memset(book,0,sizeof(book)); for(i = 0; i < n; i ++) dis[i] = w[s][i]; book[s] = 1; for(i = 1; i < n; i ++) { min = inf; for(j = 0; j < n; j ++) { if(!book[j]&&dis[j] < min) { u = j; min = dis[j]; } } book[u] = 1; for(j = 0; j < n; j ++) if(!book[j]&&dis[j] > dis[u]+w[u][j]) dis[j] = dis[u] + w[u][j]; } if(dis[e] == inf) printf("-1\n"); else printf("%d\n",dis[e]); } return 0;}
阅读全文
0 0
- hdu 1863 [【最小生成树】+hdu2544【floyed】+hdu1874【dijdtra】~~~~模板复习~~~
- hdu 1863 畅通工程-----------最小生成树模板题
- HDU 1863 畅通工程(最小生成树模板题)
- HDU 2122(最小生成树模板)
- hdu 1863 最小生成树
- hdu 1863 最小生成树
- HDU 1863 最小生成树
- hdu 1863 最小生成树
- hdu 1863(最小生成树)
- HDU 1863(最小生成树)
- hdu 1863 最小生成树
- hdu 1863 最小生成树
- HDU 1863 最小生成树
- 复习最小生成树问题
- 最小生成树模板
- 最小生成树模板
- 最小生成树---模板
- 最小生成树模板
- HDU 4641 K-string (SAM)
- Nginx反向代理配置示例
- Servlet与Jsp学习指南-1
- Java中集合(四)LinkedList
- 用矩阵快速幂求斐波那契数列
- hdu 1863 [【最小生成树】+hdu2544【floyed】+hdu1874【dijdtra】~~~~模板复习~~~
- BZOJ 4922 Karp-de-Chant Number 贪心+动态规划
- Android——ViewPager无限循环滑动
- TensorFlow 学习率的设置
- [计蒜客16958] Colored Graph [2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 I]
- 面试题44:扑克牌的顺子
- centos7下安装Composer简介
- Java语法基础
- HTTP状态码