uva oj 567 - Risk(Floyd算法)
/*
一张有20个顶点的图上。
依次输入每个点与哪些点直接相连。
并且多次询问两点间,最短需要经过几条路才能从一点到达另一点。 bfs 水过
*/
#include<iostream>
#include<cstring>
#include<vector>
#include<cstdio>
#include<queue>
using namespace std; struct node{
int x, step;
node(){ }
node(int x, int step){
this->x=x;
this->step=step;
}
}; vector<int>v[];
queue<node>q;
int vis[]; int b, e; void bfs(){
while(!q.empty()) q.pop();
node cur;
q.push(node(b, ));
while(!q.empty()){
cur=q.front();
q.pop();
if(cur.x==e){
printf("%2d to %2d: %d\n", b, e, cur.step);
return;
}
int len=v[cur.x].size();
for(int i=; i<len; ++i){
if(v[cur.x][i]==e){
printf("%2d to %2d: %d\n", b, e, cur.step+);
return;
}
if(!vis[v[cur.x][i]]){
vis[v[cur.x][i]]=;
q.push(node(v[cur.x][i], cur.step+));
}
}
}
} int main(){
int n, u;
int cnt=;
while(scanf("%d", &n)!=EOF){
while(n--){
scanf("%d", &u);
v[].push_back(u);
v[u].push_back();
}
for(int i=; i<=; ++i){
scanf("%d", &n);
while(n--){
scanf("%d", &u);
v[i].push_back(u);
v[u].push_back(i);
}
}
scanf("%d", &n);
printf("Test Set #%d\n", ++cnt);
while(n--){
scanf("%d%d", &b, &e) ;
bfs();
memset(vis, , sizeof(vis));
}
printf("\n");
for(int i=; i<=; ++i)
v[i].clear(); }
return ;
}
/*
Floyd 才是正解!
*/
#include<iostream>
#include<cstring>
#include<vector>
#include<cstdio>
#include<queue>
#define INF 0x3f3f3f3f
using namespace std; int map[][]; void Folyd(){
for(int k=; k<=; ++k)
for(int i=; i<=; ++i)
for(int j=; j<=; ++j)
if(map[i][j] > map[i][k] + map[k][j])
map[i][j] = map[i][k] + map[k][j];
} int main(){
int n, u, b, e;
int cnt=;
while(scanf("%d", &n)!=EOF){
memset(map, 0x3f, sizeof(map));
while(n--){
scanf("%d", &u);
map[][u]=map[u][]=;
}
for(int i=; i<=; ++i){
scanf("%d", &n);
while(n--){
scanf("%d", &u);
map[u][i]=map[i][u]=;
}
}
scanf("%d", &n);
printf("Test Set #%d\n", ++cnt);
Folyd();
while(n--){
scanf("%d%d", &b, &e) ;
printf("%2d to %2d: %d\n", b, e, map[b][e]);
}
printf("\n");
}
}
uva oj 567 - Risk(Floyd算法)的更多相关文章
- 【Audiophobia UVA - 10048 】【Floyd算法】
题目大意:从a城市到b城市的路径中,尽可能让一路上的最大噪音最小. 题目思路:设d [ i ][ j ]表示 i 到 j 的最大噪音的最小值. 那么d [ i ][ j ] = min( d[ i ] ...
- [Swust OJ 412]--医院设置(floyd算法)
题目链接:http://acm.swust.edu.cn/problem/412/ Time limit(ms): 1000 Memory limit(kb): 65535 Description ...
- Calling Circles(UVa 247)(Floyd 算法)
用Floyd算法求出传递闭包,然后用dfs求出每条连通分量.注意其中用到的几个小技巧: #include<cstdio> #include<iostream> #include ...
- 【uva 10048】Audiophobia(图论--Floyd算法)
题意:有一个N点M边的无向带权图,边权表示路径上的噪声值.有Q个询问,输出 x,y 两点间的最大噪声值最小的路径的该值.(N≤100,M≤1000,Q≤10000) 解法:N值小,且问多对点之间的路径 ...
- UVa 10048 - Audiophobia(Floyd变形)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- 图论篇3——最短路径 Dijkstra算法、Floyd算法
最短路径 问题背景:地图上有很多个城市,已知各城市之间距离(或者是所需时间,后面都用距离了),一般问题无外乎就是以下几个: 从某城市到其余所有城市的最短距离[单源最短路径] 所有城市之间相互的最短距离 ...
- 最短路径之Floyd算法
Floyd算法又称弗洛伊德算法,也叫做Floyd's algorithm,Roy–Warshall algorithm,Roy–Floyd algorithm, WFI algorithm. Floy ...
- 最短路径—Dijkstra算法和Floyd算法
原文链接:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.html 最后边附有我根据文中Dijkstra算法的描述使用jav ...
- 最短路径问题——floyd算法
floyd算法和之前讲的bellman算法.dijkstra算法最大的不同在于它所处理的终于不再是单源问题了,floyd可以解决任何点到点之间的最短路径问题,个人觉得floyd是最简单最好用的一种算法 ...
随机推荐
- 深入浅出C#中的静态与非静态
C#语言静态类 vs 普通类 C#语言静态类与普通类的区别有以下几点: 1)C#语言静态类无法实例化而普通类可以: 2)C#语言静态类只能从System.Object基类继承:普通可以继承其它任何非 ...
- 要做linux运维工程师的朋友,必须要掌握以下几个工具才行 ...
要做linux运维工程师的朋友,必须要掌握以下几个工具才行 ... [复制链接] 发表于 2013-12-13 15:59 | 来自 51CTO网页 [只看他] 楼主 本人 ...
- PN结的形成
P型半导体 在纯净的硅晶体中掺入3价元素如硼,使之取代晶格中硅原子的位置,就形成了P型半导体.在P型半导体中,空穴为多字,自由电子为少子,主要靠空穴导电.掺入的杂质越多,空穴的浓度就越大,导电性就越强 ...
- 超链接标签a样式生效,取消下划线,文字垂直(上下)居中
直接设置超链接标签a的属性时并不会生效, 需要将display属性改为inline-block, 即style="display:inline-block" 添加标签a时,默认是有 ...
- javascript Xml兼容性随笔
一.前言 (function (window) { if (!window.jasen) { window.jasen = {}; } if (!window.jasen.core) { window ...
- C#函数式编程之可选值
在我们的实际开发中已经会遇到可空类型,而在C#中自从2.0之后就提供了可空类型(Nullable<T>),普通的值类型是不可以赋值为NULL,但是在类型的后面加上问号就变成了可空类型,这样 ...
- Java设计模式11:外观模式
外观模式 外观模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的外观对象进行.外观模式是一个高层次的接口,使得子系统更易于使用. 医院的例子 现代的软件系统都是比较复杂的.假如把医院比作一 ...
- windows10的激活及SQL Server 2008 的安装
在我第一次安装的SQL Server的时候,由于我的电脑是windows8专业版未激活的系统,当时安装的时候,首先出现提示说我电脑缺少了某一个插件,于是乎就下了安装.但是后来又是安装不上,各种问题一一 ...
- 【读书笔记】WebApi 和 SPA(单页应用)--knockout的使用
Web API从MVC4开始出现,可以服务于Asp.Net下的任何web应用,本文将介绍Web api在单页应用中的使用.什么是单页应用?Single-Page Application最常用的定义:一 ...
- C#将dll打包到程序中
最近比较懒,加上内容也不多就懒得排版了,字放大了,看起来应该方便一点 直接进入主题 先来看一个栗子,假设现在有一个第三方dll namespace TestLibrary1 { public clas ...