ps:我天...之前看了迪杰斯特拉..现在这题要用到floyd。。就是先建一个图,然后从列开始遍历,每列里遍历行,行又对应每列...
从A列开始遍历每行,比如遍历到B,这时候B->A知道是2,接着又遍历第一行,比如对应到C,就是B->A->C,如果B->A->C比B->C小,就把B->C更新,
感觉Floyd就是求每个点是否必须出现在某两个点之间,找出最短路径
另外这题比较坑的是,a,b之间可以有多条路......WA了几次...
代码:
#include "stdio.h"
#define MAX 1000000
int map[][];
int off[];
int begin[];
int want[];
int T,S,D,a,b,c,time;
void floyd(int t);
int main(){
int i,j,k,t,min1;
while(~scanf("%d%d%d",&T,&S,&D)){
t=;
for(i=;i<=;i++){
for(j=;j<=;j++){
map[i][j]=MAX;
}
}
for(i=;i<=T;i++){
scanf("%d%d%d",&a,&b,&c);
if(map[a][b]>c){
map[a][b]=c;
map[b][a]=c;
}
if(a>t){
t=a;
}
if(b>t){
t=b;
}
}
for(i=;i<=S;i++){
scanf("%d",&begin[i]);
}
for(i=;i<=D;i++){
scanf("%d",&want[i]);
}
floyd(t);
min1=MAX;
for(i=;i<=S;i++){
for(j=;j<=D;j++){
if(map[begin[i]][want[j]]<min1){
min1=map[begin[i]][want[j]];
}
}
}
printf("%d\n",min1);
}
return ;
}
void floyd(int t){
int i,j,k;
for(j=;j<=t;j++){
for(i=;i<=t;i++){
if(map[i][j]<MAX){
for(k=;k<=t;k++){
if(map[i][j]+map[j][k]<map[i][k]){
map[i][k]=map[i][j]+map[j][k];
}
}
}
}
}
}
#include "stdio.h"
#define MAX 1000000
int map[][];
int off[];
int begin[];
int want[];
int T,S,D,a,b,c,time;
void floyd(int t);
int main(){
int i,j,k,t,min1;
while(~scanf("%d%d%d",&T,&S,&D)){
t=;
for(i=;i<=;i++){
for(j=;j<=;j++){
map[i][j]=MAX;
}
}
for(i=;i<=T;i++){
scanf("%d%d%d",&a,&b,&c);
if(map[a][b]>c){
map[a][b]=c;
map[b][a]=c;
}
if(a>t){
t=a;
}
if(b>t){
t=b;
}
}
for(i=;i<=S;i++){
scanf("%d",&begin[i]);
}
for(i=;i<=D;i++){
scanf("%d",&want[i]);
}
floyd(t);
min1=MAX;
for(i=;i<=S;i++){
for(j=;j<=D;j++){
if(map[begin[i]][want[j]]<min1){
min1=map[begin[i]][want[j]];
}
}
}
printf("%d\n",min1);
}
return ;
}
void floyd(int t){
int i,j,k;
for(j=;j<=t;j++){
for(i=;i<=t;i++){
if(map[i][j]<MAX){
for(k=;k<=t;k++){
if(map[i][j]+map[j][k]<map[i][k]){
map[i][k]=map[i][j]+map[j][k];
}
}
}
}
}
}
hdu 2066的更多相关文章
-
# H - H HDU - 2066 (多起点、多终点问题)
H - H HDU - 2066 (多源点.多汇点问题) 一个图上,有M条边,Z个出发点,Y个终止点.求一条最短路,其中起点是Z中的任意一点,终点是Y中任意一点. Input 输入数据有多组,输入直到 ...
-
hdu 2066 一个人的旅行
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2066 一个人的旅行 Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷 ...
-
hdu 2066 一个人的旅行 Dijkstra
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2066 题意分析:以草儿家为原点,给出城市间相互抵达的时间,给出草儿想去的城市,求最短时间.典型的单源最 ...
-
hdu 2066 一个人的旅行(最短路问题)
最短路································· 类似的问题还有好多不会!慢慢学吧!!!!. 进步,哪怕每天一点也行! (恋爱不是小事,确实小事的积累!(听着酷狗音乐台说的,很 ...
-
hdu 2066 ( 最短路) Floyd &; Dijkstra &; Spfa
http://acm.hdu.edu.cn/showproblem.php?pid=2066 今天复习了一下最短路和最小生成树,发现居然闹了个大笑话-----我居然一直写的是Floyd,但我自己一直以 ...
-
HDU 2066 一个人的旅行(dijkstra水题+判重边)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2066 题目大意:输入数据有多组,每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有 ...
-
hdu 2066 一个人的旅行 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2066 题目意思:给出T条路,和草儿家相邻的城市编号,以及草儿想去的地方的编号.问从草儿家到达草儿想去的 ...
-
hdu - 2066 一个人的旅行(基础最短路)
http://acm.hdu.edu.cn/showproblem.php?pid=2066 把与草儿相连的城市最短距离置为0,然后进行dijkstra,在t个城市里找出距离最近的一个即可. #inc ...
-
HDU 2066 最短路floyd算法+优化
http://acm.hdu.edu.cn/showproblem.php?pid=206 题意 从任意一个邻居家出发 到达任意一个终点的 最小距离 解析 求多源最短路 我想到的是Floyd算法 但是 ...
随机推荐
-
Android ListView ArrayAdapter 的简单使用
前面写了3篇关于android的文章,其中的演示程序都写在了一个工程中,当时为了方便测试就在启动页MainActivity中放了3个按钮,点击不同的按钮进入不同的示例程序页面,MainActivity ...
-
使用window.print实现网页打印
Window.print()方法用于在浏览器中打印当前窗口的内容,如果想要打印当前窗口中指定部分的内容的话需要其他的一些特殊的处理; Demo: <html> <head> & ...
-
javascript a=a||";"; 表达式
其实: a=a||"defaultValue"; 与: if(!a){ a="defaultValue"; } 和: if(a==null||a==" ...
-
【原】Storm分布式RPC
5. Storm高级篇 序列化 分布式RPC High level overview LinearDRPCTopologyBuilder Local mode DRPC Remote mode DRP ...
-
xcopy 复制了0个文件
xcopy /Y "..\..\..\SolutionItems\zbmyuncore.db" "..\ZITaker" 复制zbmyuncore.db文件的时 ...
-
Mybatis迷你版--QueryObjectFactory
今天在看JDBC4.2新规范,然后无意之间就碰到了这个东西QueryObjectFactory, 市面上orm框架有很多,在这里我就不一一列举了.那么今天我来记录一下QueryObjectFactor ...
-
c# 参数名ascii码从小到大排序(字典序)拼接
代码如下: /// <summary> /// c# 参数名ascii码从小到大排序(字典序)拼接 /// </summary> /// <param name=&quo ...
-
<;面试>; PHP 常见算法
排序算法 1. 冒泡排序(数组排序) 基本思想:对需要排序的数组从后往前(逆序)进行多遍的扫描,当发现相邻的两个数值的次序与排序要求的规则不一致时,就将这两个数值进行交换.这样每遍历一次,最小的数值就 ...
-
二维纹理 Texture 2D
Textures bring your Meshes, Particles, and interfaces to life! They are image or movie files that yo ...
-
Netty官方示例
一.DEMO 官方并没有使用Hello World来作为一个例子,而是采用RFC的DISCARD,这个协议定义了就是接收到请求后什么也不干. 第一步编写DiscardServerHandler类: p ...