首页 > TAG信息列表 > P1629

P1629 邮递员送信做题笔记

开始的方法是以每个点为出发点各跑一遍 \(Dijkstra\),然后求和,发现 \(TLE\) 了 \(5\) 个点,只有 \(50 pts\)。然后看了题解,思路是建反图,正反图各跑一遍 \(Dijkstra\),然后过了。 #include <bits/stdc++.h> using namespace std; const int inf=0x3f3f3f3f; int n,m,b[2005],l,s[200

洛谷P1629 邮递员送信(反向建图)

题目链接:https://www.luogu.com.cn/problem/P1629 蛮有意思的一道题目 说实话第一见这种题真的不太好想。 读题发现,    并且重点词语被出题人贴心的标黑了,“运送每件物品过后必须返回邮局”, 这要求我们走完一遍最短路之后还要在折回去,也就是说,第一次最短路是从起点到终点,而第二

洛谷P1629 邮递员送信

原题 Description 给定一个图,求正向最短路与反向最短路。 Partial Score 首先,乍一看这个题目,咦?这不是多源最短路吗?Floyd直接 \(O(n^3)\) 怼呗!于是,就有了下面这个\(40pts\)的Floyd代码: #include <iostream> #include <memory.h> using namespace std; const int N = 1010; int g[N

P1629 邮递员送信

第一遍 Dijkstra \(G\) 第二遍 Dijkstra \(G^T\) 蒟蒻代码 #include <bits/stdc++.h> #define re register using namespace std; struct Edge{ int to,nxt,val; }; struct node{ int ver; int dis; inline bool operator <(const node& x) const{

洛谷 Problem P1629 - 邮递员送信

洛谷 Problem P1629 - 邮递员送信 原题地址 题目类型:最短路径、Dijkstra 题意: 在一个有向图中,给定一个起点,对于其余的每个点进行从起点走到该点再返回起点的操作,求最终经过的总路程。 分析: 首先可以想到用 Dijkstra 算法求出从起点到各个点的最短距离,但是到达每个点后还要返

洛谷 P1629 邮递员送信

今天刚学会Dijkstra算法的堆优化 练练手 洛谷 P1629 邮递员送信 题目链接 思路: 正着走过去的时候用一便dijkstra。 返回时就建个返图跑一遍dijkstra。 反图可以把所有结点的编号 +n建在原图的体系中。 dijkstra(1); for(int i=1;i<=n;i++){ sum+=dist[i]; } dijkstra(n+1);

P1629 邮递员送信

P1629 邮递员送信: 题目描述:    输入格式:   输出格式:    输入输出样例: 输入 #1 5 10 2 3 5 1 5 5 3 5 6 1 2 8 1 3 8 5 3 4 4 1 8 4 5 3 3 5 6 5 4 2 输出 #1 83 说明/提示:    分析: 因为一次送一个邮件,所以送完一个要回到邮局也就是1号节点,所以这就成了个单源多终点

最短路 P1629 邮递员送信

传送门 其实这一道题还是比较不错的 这一道题的题意稍微转化一下就是邮递员要到一个节点 然后再返回 求最短路   这我们很显然是可以用dijkstra算法的 我们先按照题目中给的边(单向边) 跑一边最短路 接下来一步我们是要求从各个点出发到S的最短路 乍一看很复杂的样子 其实只需要把

P1629 邮递员送信

题目描述 有一个邮递员要送东西,邮局在节点1.他总共要送N-1样东西,其目的地分别是2~N。由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有M条道路,通过每条道路需要一定的时间。这个邮递员每次只能带一样东西。求送完这N-1样东西并且最终回到邮局最少需要多少时间。 输入格

洛谷P1629 邮递员送信 最短路-Djistra

先上一波题目qwq https://www.luogu.org/problem/P1629· 复习了一波 dijstra 的 priority_queue(优先队列)优化的写法 tips: 求单项路中求每个点走到固定点的最短路可以把每条路倒过来 然后从固定点开始跑一次最短路即可 #include<cstdio>#include<cstring>#include<algorithm>#i