HDU 1874 畅通工程续
畅通工程续
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 9566 Accepted Submission(s): 3200
现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。
每组数据第一行包含两个正整数N和M(0<N<200,0<M<1000),分别代表现有城镇的数目和已修建的道路的数目。城镇分别以0~N-1编号。
接下来是M行道路信息。每一行有三个整数A,B,X(0<=A,B<N,A!=B,0<X<10000),表示城镇A和城镇B之间有一条长度为X的双向道路。
再接下一行有两个整数S,T(0<=S,T<N),分别代表起点和终点。
#include <set>#include <map>#include <list>#include <cmath>#include <ctime>#include <deque>#include <queue>#include <stack>#include <cstdio>#include <string>#include <vector>#include <cctype>#include <cstring>#include <sstream>#include <fstream>#include <cstdlib>#include <cassert>#include <iostream>#include <algorithm> using namespace std;//Constant Declaration/*--------------------------*///#define LL long long #define LL __int64const int M=250;//最多点数const int INF=1<<30;const double EPS = 1e-11;const double PI = acos(-1.0);/*--------------------------*/// some essential funtion/*----------------------------------*/void Swap(int &a,int &b){ int t=a;a=b;b=t; }int Max(int a,int b){ return a>b?a:b; }int Min(int a,int b){ return a<b?a:b; }int Gcd(int a,int b){ while(b){b ^= a ^=b ^= a %= b;} return a; }/*----------------------------------*///for (i = 0; i < n; i++)/*----------------------------------*/ int d[M];//表示i到源点的最短距离int g[M][M];//邻接矩阵bool used[M];//标记i是否被用过 void init(int n){int i, j;for (i = 0; i < n; i++) {for (j = 0; j < n; j++) { g[i][j] = INF;//初始化图没有边,默认为INF,为了一定更新 } }for (i = 0; i < n; i++) { d[i] = INF; } memset(used, false, sizeof(used));} int dijkstra(int star, int end, int n)//起点,终点,总点数(编号为1,2...n){int min_num = 1;//最小值的位置 int i; d[star] = 0;//起点到起点的最短距离为0,很重要的一步 for (int cnt = 0; cnt < n; cnt++)//注意别用while(n--),这样会改变n的值。n次贪心 {int min = INF;for (i = 0; i < n; i++) {if (!used[i] && d[i] < min) { min = d[i]; min_num = i; } } used[min_num] = 1; //把d[min_num]作为中间点,对相邻的点做松弛 for (i = 0; i < n; i++) {if (!used[i] && d[i] > d[min_num] + g[min_num][i]) { d[i] = d[min_num] + g[min_num][i]; } } }return d[end];}int main(){//freopen("in.txt","r",stdin);//freopen("out.txt","w",stdout);//int t, case1 = 0;//scanf("%d", &t); int n, m;int i, j;while (scanf("%d%d", &n, &m) != EOF) { init(n);while (m--) {int a, b, c; scanf("%d%d%d", &a, &b, &c); g[b][a] = g[a][b] = Min(c, g[a][b]);//此题为无向图 }int star, end; scanf("%d%d", &star, &end);int ans = dijkstra(star, end, n);if(INF == ans) { puts("-1"); }else { printf("%d\n", ans); } } return 0;}
转载于:https://www.cnblogs.com/qiufeihai/archive/2012/03/06/2382470.html
HDU 1874 畅通工程续相关推荐
- 杭电 hdu 1874 畅通工程续
第二次 /* THE PROGRAM IS MADE BY PYY */ /*------------------------------------------------------------- ...
- HDOJ 1874 HDU 1874 畅通工程续 ACM 1874 IN HDU
MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1874 ...
- HDU 1874 畅通工程续 (Dijkstra , Floyd , SPFA, Bellman_Ford 四种算法)
畅通工程续 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 Problem Description 某省自从实行了很多年的畅通工程计划后,终于修 ...
- hdu 1874 畅通工程续(求最短距离,dijkstra,floyd)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1874 /************************************************* ...
- HDU 1874 畅通工程续 Floyd
畅通工程续 http://acm.hdu.edu.cn/showproblem.php?pid=1874 Time Limit: 3000/1000 MS (Java/Others) Memory L ...
- hdu 1874畅通工程续(基础Floyd)
畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- HDU 1874 畅通工程续 2008浙大研究生复试热身赛(2)
畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- HDU 1874 畅通工程续 最短路
畅通工程续 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description 某 ...
- hdu 1874 畅通工程续(模板题 spfa floyd)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1874 spfa 模板 1 #include<iostream> 2 #include<s ...
最新文章
- 深度学习的多个loss如何平衡?
- ×××论坛应该为访问者更大的价值
- 这个神器竟然能分分钟将多个 kubeconfig 合并成一个!
- IntelliJ IDEA创建maven web项目
- 斯特林数 java实现_斯特林数学习笔记
- charles请求转发_Charles安装与基本操作
- Android Debug Bridge 技术实现原理
- Linux中移动,复制,删除,打包排除某个目录或文件
- 缴费报修小程序开发制作功能介绍
- 虹科案例|光刻机汞灯替代者—定制大功率UV-LED平行光源
- 如何将自己网络计算机更名,如何将自己的win7电脑变身wifi无线网络热点
- android虚拟按键实现,虚拟按键的实现
- 吴忠文化旅游的现状与问题
- 深度解读互联网新时代:Web3.0
- Outsider(HNOI2019)
- 计算机教育cscd,工程技术方向论文投稿,这几本CSCD期刊值得推荐
- iPhone的全新创意 变身成收音机
- mysql 按月统计排序,mysql按月统计_实现mysql按月统计的教程
- Java排序修真:从入门到进阶,从后天生灵到祖神祖仙
- 【初学者系列】02-算法实例Jupyter转换为Python流程
热门文章
- 央行无意放宽松,7月贷款仍有可能吃紧
- 王重敏的“中国主义”
- java中类与类的关系_Java中类与类的关系
- jap和java有关系吗_hibernate与jpa有什么区别和联系?
- delphi打印html文件路径,Delphi获取文件名、不带扩展名文件名、文件所在路径、上级文件夹路径的方法...
- mysql zero fill_mysql zerofill 的使用
- 图形学教程Lecture 2: Review of Linear Algebra知识点总结
- Windows Mobile Widget Emulator
- 英语进阶系列-A06-本周总结
- ACM10.14题解