Description

小Q来到了一个随机的国度。这个国度由n座城市和m条双向道路构成。因为这个国度崇尚随机,因此m条边是用随机
选择两端点的方式生成的。充满好奇的小Q想在这里进行k次随机的旅行,每次的起点和终点也是随机选择的。在每
次出发之前,他会使用导航系统计算两点间最少需要经过几条道路。请写一个程序,帮助小Q计算两点间的最短路

Input

第一行包含3个正整数n,m,k(2<=n<=100000,1<=m<=300000,1<=k<=10000),分别表示点数、边数和询问数。
接下来m行,每行两个正整数u_i,v_i(1<=u_i,v_i<=n),表示一条双向道路。输入数据保证不会有重边和自环。
接下来k行,每行两个正整数u_i,v_i(1<=u_i,v_i<=n,u_i!-v_i),表示一次询问。
输入数据保证随机生成,且除了样例之外均满足n=100000,m=300000。
本题共3组数据。

Output

输出k行,每行一个整数,即最少经过的边数,若无解输出-1。
由于随机数据,可以直接双向广搜求最短路,特判不连通的情况。
#include<bits/stdc++.h>
const int N=1e5+;
char ib[N*],*ip=ib;
int _(){
int x=;
while(*ip<)++ip;
while(*ip>)x=x*+*ip++-;
return x;
}
int n,m,k,f[N];
std::vector<int>e[N];
int ed[N][],tk=;
int gf(int x){
while(x!=x[f])x=x[f]=x[f][f];
return x;
}
struct{
int q[N],ql,qr;
void clr(){ql=qr=;}
void push(int x,int d){
ed[x][]=tk;
ed[x][]=d;
q[++qr]=x;
}
int pop(){return q[++ql];}
int cnt(){return qr-ql;}
}qa,qb;
int que(){
int a=_(),b=_();
if(a==b)return ;
if(gf(a)!=gf(b))return -;
++tk;
qa.clr(),qb.clr();
qa.push(a,),qb.push(b,-);
for(;;){
for(int t=qa.cnt();t;--t){
int w=qa.pop(),d=ed[w][]+;
for(unsigned i=;i!=e[w].size();++i){
int u=e[w][i];
if(ed[u][]==tk){
if(ed[u][]<)return d-ed[u][]-;
}else qa.push(u,d);
}
}
for(int t=qb.cnt();t;--t){
int w=qb.pop(),d=ed[w][]-;
for(unsigned i=;i!=e[w].size();++i){
int u=e[w][i];
if(ed[u][]==tk){
if(ed[u][]>)return ed[u][]-d-;
}else qb.push(u,d);
}
}
}
}
int main(){
fread(ib,,sizeof(ib),stdin);
n=_(),m=_(),k=_();
for(int i=;i<=n;++i)f[i]=i,e[i].reserve();
for(int i=,a,b;i<m;++i){
a=_(),b=_();
e[a].push_back(b);
e[b].push_back(a);
f[gf(a)]=gf(b);
}
for(int i=;i<=k;++i)printf("%d\n",que());
return ;
}

bzoj5049: 导航系统的更多相关文章

  1. 【bzoj5049】[Lydsy九月月赛]导航系统 并查集+双向BFS最短路

    题目描述 给你一张 $n$ 个点 $m$ 条边的随机图,边权为1.$k$ 次询问两点间最短路,不连通则输出-1. 输入 第一行包含3个正整数n,m,k(2<=n<=100000,1< ...

  2. bzoj5049 [Lydsy1709月赛]导航系统 双向bfs

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=5049 题解 题面里面满眼的随机.既然数据完全随机,那就是在锻炼选手的乱搞能力啊. 根据一个常用 ...

  3. 【转】GLONASS全球卫星导航系统

    GLONASS是“GLOBAL NAVIGATION SATELLITE SYSTE(全球卫星导航系统)”的缩写,作用类似于美国的GPS.欧洲的伽利略卫星定位系统.最早开发于苏联时期,后由俄罗斯继续该 ...

  4. UE导航系统详

    配置 Navigation Crowd Manager Class 代理人管理类 可以自定义个 Navigation System Auto Create Navigation Data 导航数据在没 ...

  5. Unity 3D-Navigation网格导航系统使用教程

    Unity自带导航系统 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创 ...

  6. 车载导航系统中GPS的定位

    首先购买的车载导航系统有GPS信号接受功能,能够接收GPS的经纬度信号,然后导航终端里面安装的导航地图能够非常详细的显示详细的经纬度坐标和地物信息.导航终端通过接收器接收到卫星24小时不间断发射的免费 ...

  7. 利用WPF建立自己的3d gis软件(非axhost方式)(十二)SDK中的导航系统

    原文:利用WPF建立自己的3d gis软件(非axhost方式)(十二)SDK中的导航系统 先下载SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bPew ...

  8. 牛客寒假6-I 导航系统

    链接:https://ac.nowcoder.com/acm/contest/3007/I来源:牛客网 题目描述 小 Q 所在的国家有 N 个城市,城市间由 N-1 条双向道路连接,任意一对城市都是互 ...

  9. .NET Core 3 WPF MVVM框架 Prism系列之导航系统

    本文将介绍如何在.NET Core3环境下使用MVVM框架Prism基于区域Region的导航系统 在讲解Prism导航系统之前,我们先来看看一个例子,我在之前的demo项目创建一个登录界面: 我们看 ...

随机推荐

  1. 『计算机视觉』mini深度学习框架实现

    一.项目简介 手动实现mini深度学习框架,主要精力不放在运算优化上,仅体会原理. 地址见:miniDeepFrame 相关博客 『TensorFlow』卷积层.池化层详解 『科学计算』全连接层.均方 ...

  2. EOS使用

    公司要玩区块链,听说EOS交易快,就弄来玩玩.弄了一天终于编译成功了. Scanning dependencies of target nodeos [%] Building CXX object p ...

  3. 各大型网站架构分析收集-原网址http://blog.csdn.net/lovingprince/article/details/3379710

    1. PlentyOfFish 网站架构学习http://www.dbanotes.net/arch/plentyoffish_arch.html 采取 Windows 技术路线的 Web 2.0 站 ...

  4. nginx请求数据超长的问题解决

    参考文章 https://www.cnblogs.com/onmyway20xx/p/4469202.html http://blog.51cto.com/iyull/2129220

  5. [Leetcode 105]*前序后序遍历形成树

    public TreeNode find(int[] preorder, int[] inorder,int j, int start, int end) { if (j > preorder. ...

  6. mybatis 使用IN 关键字

    mybatis 使用IN 关键字,查询条件如果有多个,拼接成字符串,当做参数传入的时候可能会只查询一条数据,那是因为mybits 将它当做一个字符串来处理了,这时候就需要使用<foreach&g ...

  7. C语言的通用指针类型(void *)

    reference: https://blog.csdn.net/cumirror/article/details/4631701 https://blog.csdn.net/Lee_Shuai/ar ...

  8. mysql错误集合

    一.This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its de 错误解决办法 这是我们开启了bin-log ...

  9. 1) 嵌套的 div ,或者 ul ol .li 阻止冒泡 ,特别是 对应onclick="test(event)" 通过传递event 阻止 冒泡. cancelBubble , stopPropagation

    1 .html 结构: <ul class="ul_2 hide" data-first="5"> <li class="li_2& ...

  10. Power Query Advanced Editor键盘快捷键

    当你点击阅读这篇文章,第一眼看到这首图,是不是不太明白?实际上是小悦对Power BI 功能的12月更新的部分功能很有兴趣,所以今天想用这张张首图作为例,延伸测试键盘快捷键的简单应用,还真别说,确实还 ...