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是最简单最好用的一种算法 ...
随机推荐
- web
1.linux下交换文件 .index.php.swp 有时可查看源码2.当php后缀被过滤的时候可以直接对ph开头的后缀进行一个fuzz测试可以上传的文件后缀名3.curl -x 123.45.67 ...
- 如何让ECSHOP不同的分类调用不同模板方法
如何给ecshop商品分类,显示不同的模板的话.可以通过不同的分类ID来取得不同模板.我们可以通过分类ID来判断,比如分类为1的,调用cat1.dwt.分类为2的,调用cat2.dwt,我们在cate ...
- iBatis简单介绍
1. Ibatis是开源软件组织Apache推出的一种轻量级的对象关系映射(ORM)框架,和Hibernate.Toplink等在java编程的对象持久化方面深受开发人员欢迎. 对象关系映 ...
- 网页版视频网站可以用html5来实现吗?
当然可以用html5来实现视频网站,而且html5的诞生完全符合了百度优化,百度蜘蛛对这类的网站友好度非常高,会尽量会给高的权重,但是现在很多做 这类网站的开发还是比较习惯用websocket,这个东 ...
- windows下在文件夹中快速启动cmd
在windows下,有时候由于特定需要,我们经常需要将cmd cd到某文件下进行命令行操作,其实,这里有一个小技巧: 在一个文件下,按住shift键,然后点击鼠标右键,你就会发现菜单栏中多出一个“在 ...
- Enum是如何用的?
一.前言 对于枚举Enum,大家都非常熟悉,但枚举出现的场景非常多的时候,是不是可以抽象出一个通用的解决方式.代码大家都会写,但并不是所有人都喜欢写重复的代码,老是用Ctrl+C和Ctrl+V累不累啊 ...
- file /usr/share/mysql/... conflicts with file from package mysql-libs-5.1.73-3.el6_5.x86_ 64 MySQL安装
在CentOS 6.5安装MySQL 5.6.17,安装到最后一个rpm文件MySQL-server时 安装命令是:rpm -ivh MySQL-server-5.6.17-1.el6.x86_64. ...
- Mono+Jexus部署Web页面
一.web页面 二.Jexus默认站点的配置文件(只需修改站点路径) ###################### # Web Site: Default ###################### ...
- 让人一用钟情的VS插件系列之一——Web Essentials(Web开发必备利器)
返回VS插件总目录 本篇目录 初识Web Essentials 看国外大牛如何评价Web Essentials Web Essentials下载与安装 Web Essentials涉及到了哪些内容 初 ...
- Java虚拟机5:Java垃圾回收(GC)机制详解
哪些内存需要回收? 哪些内存需要回收是垃圾回收机制第一个要考虑的问题,所谓“要回收的垃圾”无非就是那些不可能再被任何途径使用的对象.那么如何找到这些对象? 1.引用计数法 这个算法的实现是,给对象中添 ...