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是最简单最好用的一种算法 ...
随机推荐
- JTA 深度历险 - 原理与实现
转自http://www.ibm.com/developerworks/cn/java/j-lo-jta/ 在 J2EE 应用中,事务是一个不可或缺的组件模型,它保证了用户操作的 ACID(即原子.一 ...
- ubuntu安装日文分词软件MeCab及其Python插件
1.从官网上下载三个包: http://taku910.github.io/mecab/ mecab-0.996 mecab-0.996.tar.gz mecab-ipadic-2.7.0-20070 ...
- hdoj 1022 Train Problem I
#include<stdio.h> int main() { int n,i,j,k; ],]; ]; while(scanf("%d %s %s",&n,in ...
- myrocks 之数据字典
data dictionary rocksdb作为mysql的一个新的存储引擎,在存储引擎层,会维护自已的元数据信息.在innodb存储引擎中,我们通过information_schema下的INNO ...
- PHP版微信公共平台消息主动推送,突破订阅号一天只能发送一条信息限制
2013年10月06日最新整理. PHP版微信公共平台消息主动推送,突破订阅号一天只能发送一条信息限制 微信公共平台消息主动推送接口一直是腾讯的私用接口,相信很多朋友都非常想要用到这个功能. 通过学习 ...
- 淘宝上倒卖新浪微盘事件来龙去脉——谈谈巧用IMEI
这是一个老黄历的事件,曾记得淘宝上的卖家卖10元卖50g网络硬盘,并且卖的相当的火,一个月就卖了500个账号.由于我也是那个事件的亲身经历者之一,这里就看到了IMEI号在项目中防止作弊是何其的重要. ...
- Asp.net web form url route使用总结
asp.net web form 使用URL路由 注不是mvc中的路由 一.前台控件使用路由,通过表达式生成url地址,注意给路由参数赋值,防止使用了其他路由表达式值方式1:<asp:Hyper ...
- ENode 2.0 - 第一个真实案例剖析-一个简易论坛(Forum)
前言 经过不断的坚持和努力,ENode 2.0的第一个真实案例终于出来了.这个案例是一个简易的论坛,开发这个论坛的初衷是为了验证用ENode框架来开发一个真实项目的可行性.目前这个论坛在UI上是使用了 ...
- 设计模式之美:Object Pool(对象池)
索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):实现 DatabaseConnectionPool 类. 实现方式(二):使用对象构造方法和预分配方式实现 ObjectPool ...
- Javascript事件模型系列(三)jQuery中的事件监听方式及异同点
作为全球最知名的js框架之一,jQuery的火热程度堪称无与伦比,简单易学的API再加丰富的插件,几乎是每个前端程序员的必修课.从读<锋利的jQuery>开始,到现在使用jQuery有一年 ...