洛谷P1629 邮递员送信 最短路-Djistra
先上一波题目qwq https://www.luogu.org/problem/P1629·
复习了一波 dijstra 的 priority_queue(优先队列)优化的写法
tips: 求单项路中求每个点走到固定点的最短路可以把每条路倒过来 然后从固定点开始跑一次最短路即可
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
const int M=,mx=2e7;
int read(){
int ans=,f=,c=getchar();
while(c<''||c>''){if(c=='-') f=-; c=getchar();}
while(c>=''&&c<=''){ans=ans*+(c-''); c=getchar();}
return ans*f;
}
struct qwq{
int id,d;
bool operator<(const qwq&x)const{return x.d<d;}
};
priority_queue<qwq>q;
int cnt,first[M];
struct node{int to,next,w;}e[],e1[];
void ins(int a,int b,int w){
cnt++; e[cnt].to=b; e[cnt].w=w;
e[cnt].next=first[a]; first[a]=cnt;
}
int cnt1,first1[M];
void ins1(int a,int b,int w){
cnt1++; e1[cnt1].to=b; e1[cnt1].w=w;
e1[cnt1].next=first1[a]; first1[a]=cnt1;
}
int n,m,dis[M],dis1[M];
void dj1(){
q.push((qwq){,});
dis[]=;
while(!q.empty()){
qwq x=q.top(); q.pop();
if(x.d>dis[x.id]) continue;
for(int i=first[x.id];i;i=e[i].next){
int now=e[i].to;
if(dis[now]>dis[x.id]+e[i].w){
dis[now]=dis[x.id]+e[i].w;
q.push((qwq){now,dis[now]});
}
}
}
}
void dj2(){
q.push((qwq){,});
dis1[]=;
while(!q.empty()){
qwq x=q.top(); q.pop();
if(x.d>dis1[x.id]) continue;
for(int i=first1[x.id];i;i=e1[i].next){
int now=e1[i].to;
if(dis1[now]>dis1[x.id]+e1[i].w){
dis1[now]=dis1[x.id]+e1[i].w;
q.push((qwq){now,dis1[now]});
}
}
}
}
int main(){
int x,y,w,ans=;
n=read(); m=read();
for(int i=;i<=n;i++) dis[i]=mx,dis1[i]=mx;
for(int i=;i<=m;i++) x=read(),y=read(),w=read(),ins(x,y,w),ins1(y,x,w);
dj1(); dj2();
for(int i=;i<=n;i++) ans+=dis[i]+dis1[i];
printf("%d\n",ans);
return ;
}
洛谷P1629 邮递员送信 最短路-Djistra的更多相关文章
- 洛谷 P1629 邮递员送信-反向建边
洛谷 P1629 邮递员送信 题目描述: 有一个邮递员要送东西,邮局在节点 11.他总共要送 n-1n−1 样东西,其目的地分别是节点 22 到节点 nn.由于这个城市的交通比较繁忙,因此所有的道路都 ...
- 洛谷——P1629 邮递员送信
P1629 邮递员送信 题目描述 有一个邮递员要送东西,邮局在节点1.他总共要送N-1样东西,其目的地分别是2~N.由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有M条道路,通过每条道路需要 ...
- 洛谷 P1629 邮递员送信 题解
P1629 邮递员送信 题目描述 有一个邮递员要送东西,邮局在节点1.他总共要送N-1样东西,其目的地分别是2~N.由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有M条道路,通过每条道路需要 ...
- 洛谷P1629 邮递员送信
题目描述 有一个邮递员要送东西,邮局在节点1.他总共要送N-1样东西,其目的地分别是2~N.由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有M条道路,通过每条道路需要一定的时间.这个邮递员每 ...
- 洛谷 P1629 邮递员送信
题目描述 有一个邮递员要送东西,邮局在节点1.他总共要送N-1样东西,其目的地分别是2~N.由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有M条道路,通过每条道路需要一定的时间.这个邮递员每 ...
- 洛谷—— P1629 邮递员送信
https://www.luogu.org/problem/show?pid=1629 题目描述 有一个邮递员要送东西,邮局在节点1.他总共要送N-1样东西,其目的地分别是2~N.由于这个城市的交通比 ...
- yzoj P1412 & 洛谷P1629 邮递员送信 题解
有一个邮递员要送东西,邮局在结点1.他总共要送N-1样东西,其目的地分别是2~N.由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有M条道路,通过每条道路需要一定的时间.这个邮递员每次只能带一 ...
- Luogu P1629 邮递员送信
P1629 邮递员送信 题目描述 有一个邮递员要送东西,邮局在节点1.他总共要送N-1样东西,其目的地分别是2~N.由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有M条道路,通过每条道路需要 ...
- P1629 邮递员送信
题目描述: 有一个邮递员要送东西,邮局在节点1.他总共要送N-1样东西,其目的地分别是2~N.由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有M条道路,通过每条道路需要一定的时间.这个邮递员 ...
随机推荐
- Logstash配置文件详情
logstash 配置文件编写详解 说明 它一个有jruby语言编写的运行在java虚拟机上的具有收集分析转发数据流功能的工具能集中处理各种类型的数据能标准化不通模式和格式的数据能快速的扩展自定义日志 ...
- SpringMVC学习(9):实现注解式权限验证
对大部分系统来说都需要权限管理来决定不同用户可以看到哪些内容,那么如何在Spring MVC中实现权限验证呢?当然我们可以继续使用servlet中的过滤器Filter来实现.但借助于Spring MV ...
- Python之计算当前月份的日期范围(calendar、datetime)
在当前月份中循环每一天大致的思路就是先计算出当月的第一天和下个月的第一天日期,还有当月总共有多少天,然后把第一天日期按照月总天数累加到下个月的第一天,就ok 啦 from datetime impor ...
- Robot Framework使用技巧之内部变量
[转载] 1.变量的使用 变量可以在命令行中设置,个别变量设置使用--variable (-v)选项,变量文件的选择使用--variablefile (-V)选项. 通过命令行设置的变量是全局变量,对 ...
- windows消息机制(转)
1. 引言Windows 在操作系统平台占有绝对统治地位,基于Windows 的编程和开发越来越广泛.Dos 是过程驱动的,而Windows 是事件驱动的[6],这种差别的存在使得很多Dos 程序员不 ...
- spring框架的一些测试思路
一.Spring Boot Actuators Spring Boot Actuator是Spring Boot提供的对应用系统的监控和管理的集成功能,可以查看应用配置的详细信息,例如自动化配置信息. ...
- sql中的(case when then else end )的用法(相当于java中的if else)
Case具有两种格式:简单Case函数和Case搜索函数. 1.简单Case函数: CASE sex WHEN‘1’THEN‘男’ WHEN‘0’THEN‘女’ ELSE‘其他’END 2.Case搜 ...
- Vue开发环境的搭建及基本开发流程
1.下载并安装node,下载地址. 2.命令行运行以下命令安装npm淘宝镜像; npm install -g cnpm --registry=https://registry.npm.taobao.o ...
- leetcode-第14周双周赛-1273-删除树节点
题目描述: 自己的提交:动态规划 class Solution: def deleteTreeNodes(self, nodes: int, parent: List[int], value: Lis ...
- ceph学习笔记之十二 Ubuntu安装部署Ceph J版本
https://cloud.tencent.com/info/2b70340c72d893c30f5e124e89c346cd.html 安装Ubuntu系统安装步骤略过 拓扑连接: 一.安装前准备工 ...