洛谷P1342请柬
传送门啦
核心思想:两遍最短路.
1号点去各地的时间直接套最短路模板,各地到1号点时间用逆向思维,视为求1号点沿反边到各地的时间即可.
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
#define re register
using namespace std;
const int maxn = 1000005;
inline int read(){
char ch = getchar();
int f = 1 , x = 0;
while(ch > '9' || ch < '0'){if(ch == '-')f = -1;ch = getchar();}
while(ch >= '0' && ch <= '9'){x = (x << 1) + (x << 3) + ch - '0';ch = getchar();}
return x * f;
}
int n,m,u,v;
long long w;
int head1[maxn],tot1,head2[maxn],tot2;
long long ans,dis1[maxn],dis2[maxn];
struct Edge{
int from,to,next;
long long val;
}edge1[maxn<<1] , edge2[maxn<<1];
struct Node{
int u,d;
bool operator < (const Node &f) const {
return d > f.d;
}
};
inline void add1(int u,int v,long long w){
edge1[++tot1].from = u;
edge1[tot1].to = v;
edge1[tot1].val = w;
edge1[tot1].next = head1[u];
head1[u] = tot1;
}
inline void add2(int u,int v,long long w){
edge2[++tot2].from = u;
edge2[tot2].to = v;
edge2[tot2].val = w;
edge2[tot2].next = head2[u];
head2[u] = tot2;
}
inline void dijk1(int s){
for(re int i=1;i<=n;i++) dis1[i] = 1e9;
priority_queue<Node> q;
dis1[s] = 0;
q.push((Node) {s , dis1[s]});
while(!q.empty()){
Node cur = q.top();
q.pop();
int d = cur.d , u = cur.u;
if(d != dis1[u]) continue;
for(re int i=head1[u];i;i=edge1[i].next){
int v = edge1[i].to;
if(dis1[v] > dis1[u] + edge1[i].val){
dis1[v] = dis1[u] + edge1[i].val;
q.push((Node) {v , dis1[v]});
}
}
}
}
inline void dijk2(int s){
for(re int i=1;i<=n;i++) dis2[i] = 1e9;
priority_queue<Node> q;
dis2[s] = 0;
q.push((Node) {s , dis2[s]});
while(!q.empty()){
Node cur = q.top();
q.pop();
int d = cur.d , u = cur.u;
if(d != dis2[u]) continue;
for(re int i=head2[u];i;i=edge2[i].next){
int v = edge2[i].to;
if(dis2[v] > dis2[u] + edge2[i].val){
dis2[v] = dis2[u] + edge2[i].val;
q.push((Node) {v , dis2[v]});
}
}
}
}
int main(){
n = read(); m = read();
for(int i=1;i<=m;i++){
u = read(); v = read(); scanf("%lld",&w);
add1(u , v , w);
add2(v , u , w);
}
dijk1(1);
for(int i=2;i<=n;i++)
ans += dis1[i];
dijk2(1);
for(int i=n;i>=2;i--){
ans += dis2[i];
}
printf("%lld\n",ans);
return 0;
}
洛谷P1342请柬的更多相关文章
- 洛谷P1342 请柬(SPFA)
To 洛谷.1342 请柬 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计 ...
- 洛谷P1342 请柬
P1342 请柬 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计划.许多学 ...
- 洛谷——P1342 请柬
P1342 请柬 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计划.许多学 ...
- 洛谷 P1342 请柬 最短路+Dijkstra算法
目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例 输出样例 说明 思路 AC代码 总结 题面 题目链接 P1342 请柬 题目描述 在电视时代,没有多少人观看戏 ...
- 洛谷 P1342 请柬(SPFA)
题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计划.许多学生被雇来分发这些请 ...
- 洛谷 P1342 请柬
题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计划.许多学生被雇来分发这些请 ...
- 洛谷—— P1342 请柬
https://www.luogu.org/problemnew/show/1342 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤 ...
- 洛谷1640 bzoj1854游戏 匈牙利就是又短又快
bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...
- 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.
没有上司的舞会 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...
随机推荐
- POI操作word和html相互转化
下面是里两个类:第一个类是html转为word,第二个是word转html(最下面附上jar包下载链接) package com.wz.poi.wordHtml; /** * 2018/4/24 * ...
- Git 常用操作(二)
第一次传数据:echo "# miya" >> README.mdgit initgit add README.mdgit commit -m "first ...
- Gradle 命令之 --stacktrace , --info , --debug 用法
FAQ: Android studio 出现错误Run with --stacktrace option to get the stack trace. Run with --info or --de ...
- POI往word模板中写入数据
转: POI往word模板中写入数据 2018年03月24日 16:00:22 乄阿斗同學 阅读数:2977 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn ...
- python安装pip、numpy、scipy、statsmodels、pandas、matplotlib等
1.安装python 2.安装numpy(开源的数值计算扩展,可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多. 很多库都是以此库为依 ...
- 【题解】Tree-String Problem Codeforces 291E AC自动机
Prelude 传送到Codeforces:(/ω\)--- (/ω•\) Solution 很水的一道题. 对查询的串建出来AC自动机,然后树上随便跑跑就行了. 为什么要写这篇题解呢? 我第一眼看到 ...
- python【数据类型:集合】
- 跨域问题 Uncaught DOMException: Blocked a frame with origin。。。
第三方系统内嵌 到iframe中的 跨域问题. 解决方案: http://www.ruanyifeng.com/blog/2016/04/same-origin-policy.html
- mysql自学路线
入门: -Head First:PHP & MySQL.Lynn Beighley -MySQL必知必会 -MySQL5.5从零开始学.刘增杰 -MYSQL完全手册 (the Complete ...
- [转载]PayPal为什么从Java迁移到Node.js,性能提高一倍,文件代码减少44%
http://ourjs.com/detail/52a914f0127c763203000008 大家都知道PayPal是另一家迁移到Node.js平台的大型公司,Jeff Harrell的这篇博文 ...