zoj 2913 Bus Pass
对于每个输入的站点求出所有点到这个站点的最短路。用anss数组存下来,然后就可以用anss数组求出答案了。
题目分析清楚了 还是比较水的,折腾了一早上。。
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<vector>
#include<queue>
#include<algorithm>
using namespace std;
struct Point{ int tott, node; };
vector<int> abc[];
int nz, nr, i, j, p, k, u, summ, ii;
int zhuan[];
int fan[];//
int anss[][];//存最短路
int ff[];//标记这个城市有没有搜过最短路
void BFS(int rr)
{
queue<Point>Q; Point start, t;
start.node = zhuan[k]; start.tott = ; anss[rr][zhuan[k]] = ; Q.push(start);
while (!Q.empty())
{
Point hd = Q.front(); Q.pop();
for (i = ; i < abc[hd.node].size(); i++)
{
if (hd.tott + < anss[rr][abc[hd.node][i]])
{
anss[rr][abc[hd.node][i]] = hd.tott + ;
t.node = abc[hd.node][i];
t.tott = hd.tott + ;
Q.push(t);
}
}
}
}
int main()
{
int sb;scanf("%d", &sb);
while (sb--)
{
scanf("%d%d", &nz, &nr);
for (i = ; i < ; i++) abc[i].clear();
for (i = ; i < ; i++) for (j = ; j < ; j++) anss[i][j] = 0x7FFFFFFF;
memset(zhuan, , sizeof(zhuan));memset(ff, , sizeof(ff));
int tot = , summ = ;
for (i = ; i <= nz; i++)
{
scanf("%d", &p);
if (zhuan[p] == ) { zhuan[p] = tot, fan[zhuan[p]] = p, tot++; }
scanf("%d", &k);
for (j = ; j <= k; j++)
{
scanf("%d", &u);
if (zhuan[u] == ) { zhuan[u] = tot, fan[zhuan[u]] = u, tot++; }
abc[zhuan[p]].push_back(zhuan[u]);
}
}
for (ii = ; ii <= nr; ii++)
{
scanf("%d", &u);
for (j = ; j <= u; j++)
{
scanf("%d", &k);
if (ff[k] == ){ BFS(summ); ff[k] = ; summ++; }
}
}
int pri = 0x7FFFFFFF; int pri2 = -;
for (i = ; i <= tot - ; i++)
{
int minn = -;
for (j = ; j < summ; j++) if (anss[j][i]>minn) minn = anss[j][i];
if (minn < pri){ pri = minn, pri2 = fan[i]; }
else if (minn == pri&&fan[i] < pri2)pri2 = fan[i];
}
printf("%d %d\n", pri + , pri2);
}
return ;
}
zoj 2913 Bus Pass的更多相关文章
- ZOJ 2913 Bus Pass (近期的最远BFS HDU2377)
题意 在全部城市中找一个中心满足这个中心到全部公交网站距离的最大值最小 输出最小距离和满足最小距离编号最小的中心 最基础的BFS 对每一个公交网站BFS dis[i]表示编号为i的点到全部公交网 ...
- Bus Pass
ZOJ Problem Set - 2913 Bus Pass Time Limit: 5 Seconds Memory Limit: 32768 KB You travel a lot b ...
- hdu 2377 Bus Pass
Bus Pass Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- 【转载】图论 500题——主要为hdu/poj/zoj
转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...
- ZOJ2913Bus Pass(BFS+set)
Bus Pass Time Limit: 5 Seconds Memory Limit: 32768 KB You travel a lot by bus and the costs of ...
- hdu2377Bus Pass(构建更复杂的图+spfa)
主题链接: 啊哈哈,点我点我 思路: 题目是给了非常多个车站.然后要你找到一个社区距离这些车站的最大值最小..所以对每一个车站做一次spfa.那么就得到了到每一个社区的最大值,最后对每一个社区扫描一次 ...
- 【HDOJ图论题集】【转】
=============================以下是最小生成树+并查集====================================== [HDU] How Many Table ...
- hdu图论题目分类
=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...
- HDU图论题单
=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...
随机推荐
- 高频交易算法研发心得--WAVT指标(Warensoft交易量趋势指标)算法及应用
高频交易算法研发心得--WAVT指标(Warensoft交易量趋势指标)算法及应用 注:WAVT指标由Warensoft(王宇)原创. 前面聊了一系列的常见应用指标,包括短线.长线的指标,并且也无耐的 ...
- [ios2]使用NSOperationQueue简化多线程开发和队列的优先级 【转】
多线程开发是一件需要特别精心的事情,即使是对有多年开发经验的工程师来说. 为了能让初级开发工程师也能使用多线程,同时还要简化复杂性.各种编程工具提供了各自的办法.对于iOS来说,建议在尽可能的情况下避 ...
- 转载 C#文件上传
一.分析 本次博客,主要解决文件上传等一系列问题,将从两方面来论述,即1G以内文件和1G以上文件. 对于上传1G以内的文件,可以采用基本的三种上传方法:用Web控件FileUpload.html控件 ...
- windows全系列激活脚本-改良版.cmd
@ECHO OFFTITLE Windows 全版本系统激活cscript //nologo %Systemroot%\system32\slmgr.vbs -skms 10.1.1.12ECHO 检 ...
- Apache server for win解压版的安装与配置
下载地址: Apache 2.4.16 Win64位:VC14:http://www.apachelounge.com/download/VC14/binaries/httpd-2.4.16-win6 ...
- Rails 执行 rails server 报错 Could not find a JavaScript runtime
gem install 'execj' gem install 'therubyrace' Ubuntu install Node.js(ubuntu) sudo apt-get install no ...
- 获取usb设备父系或子代
/// <summary> /// 获取设备父系 /// </summary> /// <param name="driver"></pa ...
- NGINX----源码阅读----init配置脚本
/auto/init init脚本负责初始化各种目录环境变量值. 1.make文件.源文件.头文件.配置头文件路径变量初始化. NGX_MAKEFILE=$NGX_OBJS/Makefile NGX_ ...
- 一个简单的例子说明windows环境变量配置
关于win下环境变量的问题 配置环境变量其实就像是创建一个快捷键一样,我们把安装程序的路径告诉系统环境变量,这样下次我们在命令行中就可以直接使用一个简单的命令来调用我们安装的程序,因为此时计算机已经知 ...
- iOS GCD基础篇 - 同步、异步,并发、并行的理解
1.关于GCD - GCD全称是Grand Central Dispatch - GCD是苹果公司为多核的并行运算提出的解决方案 - GCD会自动利用更多的CPU内核(比如双核.四核) - GC ...