LUOGU P1342 请柬(最短路)
解题思路
又是一道语文题,弄清楚题意之后其实就能想出来了,从1跑一遍最短路,把$dis[n]$加入答案。在建个反图跑一遍最短路,把$dis[n]_$加入最短路就行了。第一遍是去的时候,第二遍是回的时候。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<queue> using namespace std;
const int MAXN = ;
typedef long long LL; inline int rd(){
int x=,f=;char ch=getchar();
while(!isdigit(ch)) {f=ch=='-'?:;ch=getchar();}
while(isdigit(ch)) {x=(x<<)+(x<<)+ch-'';ch=getchar();}
return f?x:-x;
} int n,m,head[MAXN],cnt;
int to[MAXN],nxt[MAXN],val[MAXN];
int head_[MAXN],cnt_,val_[MAXN],nxt_[MAXN],to_[MAXN];
LL dis[MAXN],ans;
bool vis[MAXN]; struct Node{
int w,id;
friend bool operator<(const Node A,const Node B){
return A.w>B.w;
}
}; priority_queue<Node> Q; inline void add(int bg,int ed,int w){
to[++cnt]=ed,val[cnt]=w,nxt[cnt]=head[bg],head[bg]=cnt;
} inline void add_(int bg,int ed,int w){
to_[++cnt_]=ed,val_[cnt_]=w,nxt_[cnt_]=head_[bg],head_[bg]=cnt_;
} void dijkstra(){
memset(dis,0x3f,sizeof(dis));
Node now;now.id=;now.w=;dis[]=;Q.push(now);
while(!Q.empty()){
Node zz=Q.top();Q.pop();int x=zz.id;
if(dis[x]!=zz.w || vis[x]) continue;vis[x]=;
for(register int i=head[x];i;i=nxt[i]){
int u=to[i];
if(dis[u]<=dis[x]+val[i]) continue;
dis[u]=dis[x]+val[i];
now.id=u;now.w=dis[u];Q.push(now);
}
}
for(register int i=;i<=n;i++) ans+=dis[i];
} void dijkstra_(){
memset(vis,false,sizeof(vis));
memset(dis,0x3f,sizeof(dis));
Node now;now.id=;now.w=;dis[]=;Q.push(now);
while(!Q.empty()){
Node zz=Q.top();Q.pop();int x=zz.id;
if(dis[x]!=zz.w || vis[x]) continue;vis[x]=;
for(register int i=head_[x];i;i=nxt_[i]){
int u=to_[i];
if(dis[u]<=dis[x]+val_[i]) continue;
dis[u]=dis[x]+val_[i];
now.id=u;now.w=dis[u];Q.push(now);
}
}
for(register int i=;i<=n;i++) ans+=dis[i];
} int main(){
n=rd(),m=rd();int x,y,z;
for(register int i=;i<=m;i++){
x=rd(),y=rd(),z=rd();
add(x,y,z),add_(y,x,z);
}
dijkstra(),dijkstra_();cout<<ans;
return ;
}
LUOGU P1342 请柬(最短路)的更多相关文章
- 洛谷 P1342 请柬 最短路+Dijkstra算法
目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例 输出样例 说明 思路 AC代码 总结 题面 题目链接 P1342 请柬 题目描述 在电视时代,没有多少人观看戏 ...
- luogu P1342 请柬
题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计划.许多学生被雇来分发这些请 ...
- Luogu P1342 请柬 题解
差不多是Dijkstra的裸题吧... 这道题可以分为来回两个阶段. 去的时候很简单,直接用一次Dijkstra,然后统计答案. 回来的时候就有些巧妙了,虽然表面上是每个点回到起点,但是何尝不可将其看 ...
- 洛谷P1342 请柬
P1342 请柬 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计划.许多学 ...
- 洛谷——P1342 请柬
P1342 请柬 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计划.许多学 ...
- P1342 请柬
最近一直在做最短路......所以今天就再做一道最短路吧.... 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片 ...
- [Luogu1342] 请柬 - 最短路模板
Description 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计划.许多学生被 ...
- 洛谷—— P1342 请柬
https://www.luogu.org/problemnew/show/1342 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤 ...
- 题解 luogu P1144 【最短路计数】
本蒟蒻也来发一次题解第一篇请见谅 这个题有几个要点 1.无向无权图,建图的时候别忘记建来回的有向边[因此WA掉1次 2.无权嘛,那么边长建成1就好了2333333 3.最短路采用迪杰斯特拉(别忘用堆优 ...
随机推荐
- 神经网络中使用Batch Normalization 解决梯度问题
BN本质上解决的是反向传播过程中的梯度问题. 详细点说,反向传播时经过该层的梯度是要乘以该层的参数的,即前向有: 那么反向传播时便有: 那么考虑从l层传到k层的情况,有: 上面这个 便是问题所在.因为 ...
- 图像直方图均衡化(C#)
关于图像直方图均衡化的原理和步骤先不作讨论,我就看看代码吧. private Bitmap picequalization(Bitmap basemap, int width, int height) ...
- USACO2012 Broken necklace /// DP oj10103
题目大意: 项链最长的纯色连续段,“w”即white白色珠子,可任意涂为红或蓝,“r” “b”即红 蓝. Input Line 1: N, the number of beads Line 2: ...
- linux安装openoffice,并解决中文乱码
1.安装openoffice 官网http://www.openoffice.org/zh-cn/download/下载 2.解压并进入文件夹: cd /zh-cn/RPMS yum localins ...
- flink widow&window funcion&水印
在定义了窗口分配器之后,我们需要为每一个窗口明确的指定计算逻辑,这个就是窗口函数要做的事情, 当系统决定一个窗口已经准备好执行之后,这个窗口函数将被用来处理窗口中的每一个元素(可能是 分组的). 谁可 ...
- BBS论坛 自定义form组件
二.自定义form组件 from django import forms from django.forms import widgets from app01 import models # 定制f ...
- 2019-4-29-WPF-如何判断一个控件在滚动条的里面是用户可见
title author date CreateTime categories WPF 如何判断一个控件在滚动条的里面是用户可见 lindexi 2019-4-29 9:42:2 +0800 2019 ...
- c_数据结构_图_邻接表
课程设计------邻接表 图的遍历实现课程设计:https://files.cnblogs.com/files/Vera-y/图的遍历_课程设计.zip #include<stdio.h> ...
- Android开发 ImageView开发记录
改变图片的着色 默认是这个方法 /** * 为图像设置着色选项. Assumes * {@link PorterDuff.Mode#SRC_ATOP} blending mode. * * @para ...
- Java迷宫代码,深度优先遍历
此次迷宫深度优先遍历寻找路径采用栈结构,每个节点都有固定的行走方向(右下左上),除非一个方向走不通,不然会一条道走到黑. 如果路径存在,打印出行走路径,否则打印出迷宫不存在有效路径. 方向常量定义: ...