给你一个一共由两种边的完全图 要求你求1到N的最短路

q队列为前沿队列(已探索过且最外围的点)  p队列为未探索队列(未探索过的点)

depth这个数组的用法并不是代表实际上这个点在第几层 而是防止死循环 保证每次通过前沿的一个点都只会遍历p中每个点一次

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const long long mod = 1e9+;
const int maxn = 5e5+;
const int inf = 1e9+;
int n,m,a,b,nm,qwq;
int head[maxn];
ll dis[maxn];
struct node{
int to,nxt;
}edg[maxn*];
void add(int x,int y){
edg[++nm].to = y;
edg[nm].nxt = head[x];
head[x]=nm;
if(x==&&y==n)qwq=;
}
queue<int> p,q;
int f[maxn],dep[maxn];
void solve(){
dis[]=;
int i,j,x,y;
p.push();
for(i=;i<=n;i++){
q.push(i);
}
for(i=;i<=n;i++){
f[i]=;dep[i]=;
}
while(!p.empty()){
if(q.empty())break;
x = p.front();
p.pop();
for(i=head[x];i;i=edg[i].nxt)f[edg[i].to]=x;
j = dep[q.front()];
while(!q.empty()){
y = q.front();
if(dep[y]!=j)break;
q.pop();
dep[y]=dep[y]+;
if(f[y]==x)q.push(y);
else{
p.push(y);
dis[y]=dis[x]+b;
}
}
}
while(!p.empty())p.pop();
while(!q.empty())q.pop();
if(dis[n]==-||dis[n]>a)printf("%d\n",a);
else printf("%lld\n",dis[n]);
} void dist(){
int i,j,x,y;
dis[]=;
p.push();
while(!p.empty()){
x = p.front();
p.pop();
for(i=head[x];i;i=edg[i].nxt){
y = edg[i].to;
if(dis[y]!=-)continue;
dis[y]=dis[x]+a;
p.push(y);
}
}
if(dis[n]==-||dis[n]>b)printf("%d\n",b);
else printf("%lld\n",dis[n]);
}
int main()
{
while(scanf("%d%d%d%d",&n,&m,&a,&b)==){
qwq=;
nm = ;
int i,j,x,y;
for(i=;i<=n;i++){
head[i]=;
dis[i]=-;
}
for(i=;i<=m;i++){
scanf("%d%d",&x,&y);
add(x,y);
add(y,x);
}
if(a>=b){
if(qwq==){
printf("%d\n",b);
}
else solve();
}
else{
if(qwq==){
printf("%d\n",a);
}
else dist();
}
}
}

第十五届四川省省赛 SCU - 4444 Travel的更多相关文章

  1. 第十五届四川省省赛 SCU - 4443 Range Query

    先给你1~N的N个数 再给你每种最多50个的条件(ai,bi,ci) 或者[ai,bi,ci] (ai,bi,ci)表示下标ai到bi的最小值必为ci [ai,bi,ci]表示下标ai到bi的最大值必 ...

  2. 第十五届四川省省赛 SCU - 4439 Vertex Cover

    给你一个一般图 保证每条边的一端下标不大于30 问最小覆盖集的大小为多少 爆搜:枚举前30个点是否在覆盖集内 剪枝1:如果不在的话 那么他所连的下标大于30的点都必须选 剪纸2:最优解剪枝 #incl ...

  3. Minieye杯第十五届华中科技大学程序设计邀请赛现场同步赛 I Matrix Again

    Minieye杯第十五届华中科技大学程序设计邀请赛现场同步赛 I Matrix Again https://ac.nowcoder.com/acm/contest/700/I 时间限制:C/C++ 1 ...

  4. 北京师范大学第十五届ACM决赛-重现赛 B Borrow Classroom (树 ——LCA )

    链接:https://ac.nowcoder.com/acm/contest/3/B 来源:牛客网 Borrow Classroom 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 2 ...

  5. Minieye杯第十五届华中科技大学程序设计邀请赛网络赛D Grid(简单构造)

    链接:https://ac.nowcoder.com/acm/contest/560/D来源:牛客网 题目描述 Give you a rectangular gird which is h cells ...

  6. H-Modify Minieye杯第十五届华中科技大学程序设计邀请赛现场赛

    题面见 https://ac.nowcoder.com/acm/contest/700#question 题目大意是有n个单词,有k条替换规则(单向替换),每个单词会有一个元音度(单词里元音的个数)和 ...

  7. Minieye杯第十五届华中科技大学程序设计邀请赛网络赛 部分题目

    链接:https://pan.baidu.com/s/12gSzPHEgSNbT5Dl2QqDNpA 提取码:fw39 复制这段内容后打开百度网盘手机App,操作更方便哦 D    Grid #inc ...

  8. 福州大学第十五届程序设计竞赛_重现赛B题迷宫寻宝

    Problem B 迷宫寻宝 Accept: 52    Submit: 183Time Limit: 1000 mSec    Memory Limit : 32768 KB  Problem De ...

  9. 第十五届浙江省赛 F Now Loading!!!

    Now Loading!!! Time Limit: 1 Second      Memory Limit: 131072 KB DreamGrid has  integers . DreamGrid ...

随机推荐

  1. curl and wget

    写在前面: a.  对比curl 和 wget 的相同和不同点 来记忆 a-1 curl url  直接将请求内容输出到标准输出. 如果下载不是瞬时间完成,会显示下载进度条,如果向取消,加-s : w ...

  2. PHP学习(7)——面向对象(上)

    1.理解面向对象的概念 面向对象软件的一个重要优点是支持和鼓励封装的能力.封装也叫数据隐藏. 在面向对象的软件中,对象是一个被保存数据和操作这些数据的操作方法的唯一.可标识的集合. 对象可以按类进行分 ...

  3. phpstorm设置的快捷键突然失效了,提示: IdeaVim ...

    下班后,打开PHPstorm,突然感觉不对,经常用的快捷键突然用不了. 例如按了 Ctrl+F 快捷键后,提示:  IdeaVim! Using the Ctrl+F shortcut for Vim ...

  4. 使用Python执行dos命令并获取输出的结果

    import os import subprocess # 第一种 result1 = subprocess.check_output('dir').decode('GBK') print(resul ...

  5. 人渣给我笔记本网络适配器里加的的“bluetooth设备(个人局域网)”,卸载不掉

  6. Shortest Distance from All Buildings

    You want to build a house on an empty land which reaches all buildings in the shortest amount of dis ...

  7. [转帖]InfluxDB 1.2.0安装及新旧版本的注意事项

    InfluxDB 1.2.0安装及新旧版本的注意事项 http://haibing.org/245?zwlqby=npztq3 挺好的文章 很好的解决了 上一个文档里面 关于 web admin 的问 ...

  8. mysql函数使用报错

    This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its de 错误解决办法 解决办法也有两种,第一种是在创建 ...

  9. 深入理解Redux之手写React-Redux

    React-Redux主要由两部分组成,一是Provider(提供者),顾名思义作用就是提供状态数据. 另一部分是connect函数,它的作用是把UI组件和状态数据“连接”起来,实现了Model和Vi ...

  10. 高性能MySQL3_笔记0

    该书2015年5月出版的,实际上已经有些老了,但是经典的东西还是经典. 该书一共16章 1.Mysql的架构与历史 2.Mysql基准测试 3.服务器性能剖析 4.Schema与数据类型优化 5.创建 ...