杭电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 ...
随机推荐
- HDU 1851 A Simple Game
典型的尼姆博弈,在n对石子中,告诉你每堆的数目和每次从该堆最多可以取的数目,求最终谁将其取完. 题解:SG(i)=mi%(li+1),求异或值即可. #include <cstdio> i ...
- JAVA GUI学习 - 总结
一:项目 二:重要组件补充 三:组件高级操作
- Java发送HTTP POST请求(内容为xml格式)
今天在给平台用户提供http简单接口的时候,顺便写了个调用的Java类供他参考. 服务器地址:http://5.0.217.50:17001/VideoSend 服务器提供的是xml格式的h ...
- http://localhost:8080/ 演出Oracle说明
输入http://localhost:8080,可以出现tomcat主页.并且我检查过啦,jdk.tomcat及oracle中的环境变量都设置对啦,可是安装oracle之后,再输入http://loc ...
- python第三方模块
python相关:1.zeromq网络库:2.twisted框架:twisted:一个基于事件驱动,异步的python高性能网络开发框架:注:什么是基于事件驱动:当(鼠标点击事件)事件注册器注入事件, ...
- CSS3线性渐变linear-gradient
转自 http://www.w3cplus.com/content/css3-gradient CSS3的线性渐变 一.线性渐变在Mozilla下的应用 -moz-linear-gradient( [ ...
- C# Best Practices - Specify Clear Method Parameters
Improve parameters parameter order public OperationResult PlaceOrder(Product product, int quantity, ...
- mysql 表及其列字符集设置
--修改表的字符集 alter table rtb_media_daily_report character set gbk; --查询表列字符集 show full columns from rtb ...
- [lua]笔试-按字典序列出指指定的序列的位置
计算方法: n的阶乘记为f(n), s为输入序列, sub(i)为s的i到n的子序列.A(i)为第i位对应的字母在子序列sub(i)中的字典顺序 N(s) = sum_{1,n} T(i)*(A(i) ...
- GDB调试精粹及使用实例
一:列文件清单 1. List (gdb) list line1,line2 二:执行程序 要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符 ...