杭电1874畅通project绪
畅通project续
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 26362 Accepted Submission(s): 9470
如今,已知起点和终点,请你计算出要从起点到终点,最短须要行走多少距离。
每组数据第一行包括两个正整数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),分别代表起点和终点。
3 3
0 1 1
0 2 3
1 2 1
0 2
3 1
0 1 1
1 2
2
-1
这道题也是非常easy的最短路问题,刚開始错了,是由于没考虑到起点和终点一样,这样就直接输出0,还有是要注意考虑重边。
代码:
#include<stdio.h>
#include<string.h>
#define INF 1 << 30
int A , B , X ;
int S , T ;//代表起点和终点
int map[201][201] ;
int dis[201] ;
int used[201] ;
//输入函数,而且存图
void input(int N ,int M)
{
A = 0 ;
B = 0 ;
X = 0 ;
S = 0 ;
T = 0 ;
for(int i = 0 ; i < 201 ; i++)
{
for(int j = 0 ; j < 201 ; j++)
{
map[i][j] = INF ;
}
dis[i] = INF ;
used[i] = 0 ;
}
for( i = 0 ; i < M ; i++)
{
scanf("%d%d%d", &A , &B , &X);
if(map[A][B] > X)
{
map[A][B] = X ;
map[B][A] = X ;
}
}
scanf("%d%d" , &S , &T );
}
//dijstra函数是求最短路
void dijstra(int N)
{
bool r ;
for(int i = 0 ; i < N ; i++ )
{
int min = INF ;
int c = 0 ;
r = false ;
for(int j = 0 ; j < N ; j++)
{
if(!used[j] && dis[j] < min)
{
min = dis[j] ;
c = j ;
r = true ;
}
}
if(!r)
return ;
used[c] = 1 ;
for(j = 0 ; j < N ; j++)
{
if(!used[j] && dis[j] > dis[c] + map[c][j])
dis[j] = dis[c] + map[c][j] ;
}
}
}
int main()
{
int N = 0 , M = 0 ;
while(~scanf("%d%d" , &N , &M))
{
input( N ,M);
dis[S] = 0 ;
dijstra( N ) ;
if(S == T)
printf("0\n");
else
{
if(dis[T] != INF)
printf("%d\n",dis[T]);
else
printf("-1\n");
}
memset(map,0,sizeof(map)) ;
}
return 0 ;
}
杭电1874畅通project绪的更多相关文章
- 杭电1863 畅通project
畅通project Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 杭电1232畅通project
畅通project Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- 畅通project续HDU杭电1874【dijkstra算法 || SPFA】
http://acm.hdu.edu.cn/showproblem.php?pid=1874 Problem Description 某省自从实行了非常多年的畅通project计划后.最终修建了非常多 ...
- hdoj 1874 畅通project续【SPFA】
畅通project续 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Su ...
- HDU 1874 畅通project续 最短路径入门(dijkstra)
Problem Description 某省自从实行了非常多年的畅通project计划后,最终修建了非常多路.只是路多了也不好,每次要从一个城镇到还有一个城镇时,都有很多种道路方案能够选择,而某些方案 ...
- HDU 1874 畅通project续 (最短路径)
畅通project续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- HDOJ 1874 畅通project续
畅通project续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【floyd】HDU 1874 畅通project续
之后的题解偏重有用/总结性质,尽量理解算法本身而不是题,时间复杂度什么的也能够放放. 非常久之前做过这个题,当时使用dijkstra做的,关于几个最短路算法,分类的话能够分为下面几种. 1.单源最短路 ...
- hdu 1874 畅通project续
最短路问题,尽管a!=b,可是同一条路測评数据会给你非常多个.因此在读入的时候要去最短的那条路存起来.........见了鬼了.坑爹 #include<iostream> #include ...
随机推荐
- HYSBZ1588 营业额统计【Splay】
转载请注明出处,谢谢:http://www.cnblogs.com/KirisameMarisa/p/4366582.html ---by 墨染之樱花 [题目链接]http://www.lydsy ...
- Js 返回页面 or 跳转页面
跳出 iframe 在当前页跳转, window.parent.frames.location.href=www.baidu.com" 跳转页面 onclick="history. ...
- Sharepoint 2013 启用搜做服务
参考文件: http://www.cnblogs.com/jianyus/archive/2013/02/04/2891801.html 1. 创建好网站集,进入网站内容,点击搜素,会出现如下错误:( ...
- C#中泛型、程序集一些基本运用(Fifteenth Day)
今天主要在学习了泛型和程序集以及一些细碎的知识的运用.下面我就把今天所学的总结一下. 理论: 泛型: * 英文名字是Generic,可以让多个类型共享一组代码,泛型允许我们声明类型参数化,可以用不同的 ...
- 使用jsonEditor打造一个复杂json编辑器
最近研究一个web版的json编辑器,在github中搜索,发现了这个利器. https://github.com/jdorn/json-editor 几经研究,终于把该控件的大部分功能研究透彻. 发 ...
- POJ 1458 Common Subsequence(LCS最长公共子序列)
POJ 1458 Common Subsequence(LCS最长公共子序列)解题报告 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?c ...
- MD5校验及其c实现
那么MD5校验是什么? 一般软件或者说文件都有自己的固定文件格式或者架构信息,说简单一点就是.”世界上没有完全相同的2片叶子” ,因为MD5是一种不可逆的加密算法. 那么对于某些网上公开下载的软件,视 ...
- JavaSE学习总结第11天_开发工具 & API常用对象1
11.01 常见开发工具介绍 1:操作系统自带的记事本软件 2:高级记事本软件例:Editplus,Notepad++,UltraEdit 3:集成开发环境 IDE(Integrated Deve ...
- [LeetCode]题解(python):026-Remove Duplicates from Sorted Array
题目来源: https://leetcode.com/problems/remove-duplicates-from-sorted-array/ 题意分析: 给定一个排好序的数组,去除重复的数,返回新 ...
- PROTEL99 SE生成的gerber 与ncdrill的坐标不对应
导入cam350后的: 解决方法:出gerber的时候在高级选项里面. 1.数据单位及格式 2.优化设置