POJ 1122 FDNY to the Rescue!
给出某些交叉点的距离,-1 表示无法到达。
然后给出火灾发生点 和 附近的消防局位置。
排列消防局 的 时间 与路径。
反向建图,以火灾出发点为起点做一次SPFA。
- #include<cstdio>
- #include<cstring>
- #include<string>
- #include<queue>
- #include<algorithm>
- #include<queue>
- #include<map>
- #include<stack>
- #include<iostream>
- #include<list>
- #include<set>
- #include<cmath>
- #define INF 0x7fffffff
- #define eps 1e-6
- using namespace std;
- int n;
- struct lx
- {
- int v,t;
- };
- vector<lx>g[21];
- bool vis[21];
- int path[21];
- int dis[21];
- void SPFA(int start)
- {
- for(int i=1;i<=n;i++)
- dis[i]=INF,vis[i]=0,path[i]=0;
- queue<int>q;
- vis[start]=1,dis[start]=0;
- q.push(start);
- while(!q.empty())
- {
- int u=q.front();q.pop();
- vis[u]=0;
- for(int j=0;j<g[u].size();j++)
- {
- int v=g[u][j].v;
- int t=g[u][j].t;
- if(dis[v]>dis[u]+t)
- {
- dis[v]=dis[u]+t;
- path[v]=u;// 记录路径
- if(!vis[v])
- {
- vis[v]=1;
- q.push(v);
- }
- }
- }
- }
- }
- struct node
- {
- int Org,time;
- }l[21];
- bool cmp(node a,node b)
- {
- return a.time<b.time;
- }
- int main()
- {
- while(scanf("%d",&n)!=EOF)
- {
- for(int i=1;i<=n;i++)
- {
- for(int j=1;j<=n;j++)
- {
- int t;
- scanf("%d",&t);
- if(i==j||t==-1)continue;
- lx now;
- now.v=i,now.t=t;
- g[j].push_back(now);
- }
- }
- int start,endcot=0;
- int thend[21];
- scanf("%d",&start);
- getchar();
- char str[101];
- gets(str);
- int i=0;
- int c=0;
- while(str[i]==' ')i++;
- for(i=0;i<=strlen(str);i++)
- {
- while(str[i]>='0'&&str[i]<='9')c=c*10+str[i]-'0',i++;
- if(c!=0)
- thend[endcot++]=c,c=0;
- }
- SPFA(start);
- for( i=0;i<endcot;i++)
- l[i].Org=thend[i],l[i].time=dis[thend[i]];
- sort(l,l+endcot,cmp);
- puts("Org Dest Time Path");
- for( i=0;i<endcot;i++)
- {
- int v=l[i].Org;
- printf("%d %d %d",v,start,dis[v]);
- int tmp=v;
- while(path[tmp]!=0)
- printf(" %d",tmp),tmp=path[tmp];
- printf(" %d\n",start);
- }
- }
- }
POJ 1122 FDNY to the Rescue!的更多相关文章
- POJ 1122.FDNY to the Rescue! Dijkstra
FDNY to the Rescue! Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 2808 Accepted: 86 ...
- POJ 1122 FDNY to the Rescue!(最短路+路径输出)
http://poj.org/problem?id=1122 题意:给出地图并且给出终点和多个起点,输出从各个起点到终点的路径和时间. 思路: 因为有多个起点,所以这里反向建图,这样就相当于把终点变成 ...
- POJ 1122 FDNY to the Rescue! Floyd 打印路径就行了
题目大意: 纽约消防部门的支援速度是值得纽约人骄傲的一件事.但是他们想要最快的支援速度,帮助他们提升支援速度他们要调度离着火点最近的一个消防站.他们要你写一个程序来维护纽约消防站的光荣传统.软件需要有 ...
- poj1122 FDNY to the Rescue!(dij+反向建图+输出路径)
题目链接:poj1122 FDNY to the Rescue! 题意:给出矩阵,矩阵中每个元素tij表示从第i个交叉路口到第j个交叉路口所需时间,若tij为-1则表示两交叉路口之间没有直接路径,再给 ...
- POJ-1122 FDNY to the Rescue!---Dijkstra+反向建图
题目链接: https://vjudge.net/problem/POJ-1122 题目大意: 给出矩阵,矩阵中每个元素tij表示从第i个交叉路口到第j个交叉路口所需时间,若tij为-1则表示两交叉路 ...
- POJ题目细究
acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP: 1011 NTA 简单题 1013 Great Equipment 简单题 102 ...
- 【转】POJ百道水题列表
以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...
- POJ1122_FDNY to the Rescue!(逆向建图+最短路树)
FDNY to the Rescue! Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 2368 Accepted: 72 ...
- poj图论解题报告索引
最短路径: poj1125 - Stockbroker Grapevine(多源最短路径,floyd) poj1502 - MPI Maelstrom(单源最短路径,dijkstra,bellman- ...
随机推荐
- 动态绑定Gridview带模板列
公司要做一个可以支持4种数据库(<!--数据库类型 (DLL专用) (SQL SERVER) (ORACLE) (ACCESS)(POSTGRE SQL)-->)的并且字段随表字段变化的可 ...
- uva 620 Cellular Structure
题目连接:620 - Cellular Structure 题目大意:给出一个细胞群, 判断该细胞的可能是由哪一种生长方式的到的, 输出该生长方式的最后一种生长种类, "SIMPLE&quo ...
- Swift - String与NSString的区别,以及各自的使用场景
String是Swift里新增加的类型,它与原来的NSString可以很方便地互相转换.但在实际开发中,我们该如何选择? 1,能使用String类型就尽量使用String类型,原因如下: (1)现在C ...
- Swift - 制作一个录音机(声音的录制与播放)
1,技术介绍 (1)AVFoundation.framework框架提供了AVAudioRecorder类.它可以实现录音功能. (2)而使用该框架的AVAudioPlayer类,可以实现声音的播放. ...
- iOS开发- 查询项目代码行数
...事实上, 这功能也没什么用. 就是查询一个项目总的代码行数. 玩玩倒是能够. 方法: 在终端以下依次输入: cd 项目文件 find . "(" -name "*. ...
- EasyUI - NumberBox组件
效果: html代码: <input type ="text" id ="box"/> JS代码: $(function () { $('#box' ...
- ASP.NET - 缓存(Cache)
页面缓存: 给页面添加<%@ OutPutCache Duration = “15” VaryByParam = “none” %> 这样就可以启用页面缓存了,那么在规定的时间内,页面之访 ...
- JavaScript 进阶(四)解密闭包closure
闭包(closure)是什么东西 我面试前端基本都会问一个问题"请描述一下闭包".相当多的应聘者的反应都是断断续续的词,“子函数”“父函数”“变量”,支支吾吾的说不清楚.我提示说如 ...
- [置顶] C++之TinyXML的使用介绍
一.引子: 最近在做GBT28181国标平台对接的工作,涉及到一些进程间消息通讯,消息体有xml格式,之前测试的时候都是拿他们当做字符串去解析,现在正儿八经地开发的时候,就想到了用xml库去解析,由于 ...
- hibernate简单介绍
1. Hibernate是什么? hibernate是 轻量级的 ORM 框架. ORM全称object/relationmapping [对象/关系映射]. Hibernate主要用来实现Jav ...