最短路默写1最短路默写2
最短路默写 | |
|
问题描述
有一无负权有向图。求指定两点间的最短路径。
输入格式
输入:第一行,两个数字n和m,表示n个顶点,m条边
接下来的m行,每行三个整数,分别表示边的起点、终点和边的长度
最后一行 两个整数 x y 表示求从点x到点y的最短路径
输出格式
输出:一行,一个整数,最短路径长度
样例输入 1
3 3
1 2 5
1 3 2
3 2 1
1 2
样例输出 1
3
样例输入 2
4 5
1 2 10
1 3 1
3 2 6
3 4 2
4 2 3
1 2
样例输出 2
6
提示
注:所有数据都不超过100
#include<bits/stdc++.h>
using namespace std;
queue<int>q;
int dis[105],cnt[105],n,m,Map[105][105],ax,ay;
bool f[105],ha;
void sp(int start){int i,x;ha=false;for(i=1;i<=n;i++){ dis[i]=100000000;cnt[i]=0;}q.push(start);f[start]=true;dis[start]=0;cnt[start]=1;while(!q.empty()){x=q.front();q.pop();f[x]=false;for(i=1;i<=n;i++){if(dis[x]+Map[x][i]<dis[i]){dis[i]=dis[x]+Map[x][i];if(f[i]==false){q.push(i);f[i]=true;cnt[i]++;if(cnt[i]==n){ ha=true;return;}}}}}
}
void init(){int x,y,w;scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){for(int j=1;j<=n;j++) Map[i][j]=100000000;Map[i][i]=0;}for(int i=1;i<=m;i++){ scanf("%d%d%d",&x,&y,&w);Map[x][y]=w;}scanf("%d%d",&ax,&ay);
}
void solve(){ sp(ax);printf("%d",dis[ay]);}
int main(){init();solve();return 0;
}
最短路默写2 | |
|
问题描述
有一无负权有向图。求指定两点间的最短路径。
输入格式
第一行,两个数字n和m,表示n个顶点,m条边
接下来的m行,每行三个整数,分别表示边的起点、终点和边的长度
最后一行 两个整数 x y 表示求从点x到点y的最短路径
输出格式
一行,一个整数,最短路径长度
样例输入
3 3
1 2 5
1 3 2
3 2 1
1 2
样例输出
3
提示
n<=400000
m<=2000000
节点编号从1到n
每条边的长度都是0到10^9的整数
5组小数据,3组大数据
#include<bits/stdc++.h>
using namespace std;
const long long INF=99999999999999999ll;
const int MAX_N=400005;
const int MAX_M=4000005;
int N,M,A,B;
struct Edge{int x,y,z,next;
}e[MAX_M];
int elast[MAX_N];
struct PQNode{int u;long long dis;PQNode(int u_,long long dis_){u=u_;dis=dis_;}
};
bool operator<(PQNode a,PQNode b){return a.dis>b.dis;
}
long long dis[MAX_N];
bool mark[MAX_N];
int main(){scanf("%d%d",&N,&M);for(int i=1,j=1;i<=M;i++){int x,y,z;scanf("%d%d%d",&x,&y,&z);e[j].x=x;e[j].y=y;e[j].z=z;e[j].next=elast[x];elast[x]=j++;e[j].x=x;e[j].y=y;e[j].z=z;e[j].next=elast[y];elast[y]=j++;}scanf("%d%d",&A,&B);for(int i=1;i<=N;i++){dis[i]=INF;mark[i]=false;}dis[A]=0;priority_queue<PQNode> pq;pq.push(PQNode(A,0));while(!pq.empty()){int u=pq.top().u;pq.pop();if(mark[u]) continue;if(u==B) break;mark[u]=true;for(int j=elast[u];j;j=e[j].next){int v=e[j].y;if(dis[v]>dis[u]+e[j].z){dis[v]=dis[u]+e[j].z;pq.push(PQNode(v,dis[v]));}}}printf("%lld",dis[B]);return 0;
}
最短路默写1最短路默写2相关推荐
- 解释一下java的短路运算,Java短路运算符和非短路运算符详解
Java短路运算符和非短路运算符详解 时间:2017-09-15 来源:互联网 你了解Java短路运算符和非短路运算符吗?短路运算符就是我们常用的"&&". ...
- Java中的短路与运算和短路或运算
Java中的短路与运算 1.短路与运算的符号:&& 2.短路与运算的特点:当运算符左边的关系运算结果是false时,不再对右边的关系运算进行计算. 如:4<3&& ...
- 【专业知识问答】问:什么叫突然短路?为什么突然短路时会产生很大短路电流?
[专业知识问答] 问:什么叫突然短路?为什么突然短路时会产生很大短路电流? 答:正常时发电机的电流是经负载而构成闭合回路的.因某些突发原因,如金属物搭接.绝缘损坏.带地线误合闸等,使相与相或相与地之间 ...
- 短路逻辑运算符和非短路逻辑运算符
没想到毕业工作后还会有随堂测试[旺财],有题如下: 根据下面的代码: String s = null; 会抛出NullPointerException异常的有(). if( (s!=null) &am ...
- 牛客练习赛61 D 最短路变短了(最短路,反向最短路)难度⭐⭐⭐★
最短路变短了 链接 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format:%lld 题目描述 给定一个有向带权图,其中 ...
- java与与短路与_Java中短路运算符与逻辑运算符示例详解
1.逻辑运算符(部分) 符号 名称 && 短路与运算符 || 短路或运算符 & 与运算符 | 或运算符 对于理工科学习者来说,逻辑运算是较为基础的概念,通常会在大一的离散数学课 ...
- 语言古诗默写_小学生背诵默写古诗文是否合理且必要?专家热议教育“减负”...
南都讯近日,"有问云上论坛"请来多位教育专家围绕教育"减负"话题展开热烈讨论.学习不可能没有压力,合理的学业负担是必需的,什么是不合理.不必要的课业负担?有专家 ...
- java 的 非短路_Java 短路运算符和非短路运算符
短路运算符就是我们常用的"&&"."||",一般称为"条件操作". class Logic{ public ststic v ...
- 第K短路+严格第K短路
所谓K短路,就是从s到t的第K短的路,第1短就是最短路. 如何求第K短呢?有一种简单的方法是广度优先搜索,记录t出队列的次数,当t第k次出队列时,就是第k短路了.但点数过大时,入队列的节点过多,时间和 ...
- 交换机短路_交换机端口短路 导致上网不正常
3.查看广播风暴 既然故障工作子网中没有ARP病毒,同时楼层交换机与核心交换机之间的物理连接也是正常的,那么局域网中可能存在广播风暴现象,该现象造成了网络传输通道发生了堵塞,这样一来故障工作子网中的客 ...
最新文章
- 调用torchtext报错OSError: libtorch_cpu.so: cannot open shared object file: No such file or directory
- 2015总结 2016展望
- mysql拉荐_荐 一步一步教你MySQL主从复制读写分离
- [云炬创业学笔记]第三章商业创意的发掘与评估测试3
- new String(123) 创建了几个对象?
- java dom创建xml文件_Java 如何使用dom方式读取和创建xml文件
- Hbase Compaction 源码分析 - CompactionChecker
- easyui-validatebox验证 radio
- xilinx sdk对文本内容进行查找(find/replace)的快捷键ctrl+f
- SQL 2012 Management Studio提示无效许可问题解决!!
- 百度翻译API教程(完整Android代码)
- 上海宝付谈移动支付的四大特征
- 木讷的程序员需要知道的事情 (六)
- 程序员多数性功能不行_1024,节日快乐!南京程序员绝不认输!
- P5200 Sleepy Cow Sorting(树状数组,模拟)
- html分列代码,实现分列的两段excel vba 分列代码
- 电脑重装系统数据恢复方法教程
- resultMap使用不当导致出现There is no WRITEABLE property named 'student_id' in class 'com.ssi.model.Stud
- LeetCode单词规律解法
- Matplotlib_Study01