洛谷P1346 电车【最短路】】的更多相关文章

P1346 电车 题目描述 在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能).在每个路口,都有一个开关决定着出去的轨道,每个开关都有一个默认的状态,每辆电车行驶到路口之后,只能从开关所指向的轨道出去,如果电车司机想走另一个轨道,他就必须下车切换开关的状态. 为了行驶向目标地点,电车司机不得不经常下车来切换开关,于是,他们想请你写一个程序,计算一辆从路口A到路口B最少需要下车切换几次开关…
P1346 电车 236通过 757提交 题目提供者yeszy 标签图论福建省历届夏令营 难度普及/提高- 提交该题 讨论 题解 记录 最新讨论 解不好啊,快疯了!!哪位大… 求解:为何除了-1的点之外都… 为什么会超时…… 题目描述 在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能).在每个路口,都有一个开关决定着出去的轨道,每个开关都有一个默认的状态,每辆电车行驶到路口之后,只能从开…
https://www.luogu.org/problem/P1346 使用最短路之前居然忘记清空了. #include<bits/stdc++.h> using namespace std; typedef long long ll; const int MAXN = 1005; int n, s, t; int dis[MAXN]; bool vis[MAXN]; int G[MAXN][MAXN]; const int INF = 0x3f3f3f3f; priority_queue&l…
题目:https://www.luogu.org/problemnew/show/P1346 题意:n个路口,每个路口有好几条轨道,默认指向给出的第一个路口. 如果要换到另外的轨道去需要按一次开关.问从a到b最少需要几次开关. 思路:可以把默认的路口的轨道权值设为0,其他的权值都是1,不通的权值都是inf. 然后跑一遍最短路.注意-1. #include<cstdio> #include<cstdlib> #include<map> #include<set>…
题目描述 在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能).在每个路口,都有一个开关决定着出去的轨道,每个开关都有一个默认的状态,每辆电车行驶到路口之后,只能从开关所指向的轨道出去,如果电车司机想走另一个轨道,他就必须下车切换开关的状态. 为了行驶向目标地点,电车司机不得不经常下车来切换开关,于是,他们想请你写一个程序,计算一辆从路口 AAA 到路口 BBB 最少需要下车切换几次开关.…
上一波题目 https://www.luogu.org/problem/P1346 是道水题 路口一开始对着的那条路权值为0 其余路权值为1 然后跑一遍最短路就好了 qwq #include<cstdio> #include<cstring> #include<algorithm> #include<queue> #include<cmath> #define inf 1e9 using namespace std; ; int read(){…
这道题的关键在建图 把每一个车站看成一个点,将这个车站相连的第一个车站建立一条边权为0的边,对于它所相连的其他车站,建立边权为1的边: 这样我们可以得到一张图: 起点,终点都知道了,跑一边最短路即可 最短路可以用spfa,floyd,迪杰斯特拉: 因为n只有200,跑遍floyd就行: 但是还有一个小细节: 对于我们建的每一条边,都只是单向边,不要加上f[i][j]=f[j][i]: 附ac代码: #include<cstdio> #include<cstring> #includ…
###题目链接 洛谷 P2176 ### 题目大意: 已知农夫从 1 走到 N 点,一定走的是最短路.问你将某条路的长度变为其两倍后,农夫从 1 走到 N 点的路程最大增加多少,输出最大增量. 分析: 1.很显然,如果增大某条路长度会使得最短路增加,那么这条路必为原先最短路径上的某条路. 2.故只需要记录边的 id ,然后依次枚举该条路长度翻倍后的最短路径,然后取与一开始最短路的差值的最大值即可. 3.记得用 id[] 存储路径编号,然后要分别更改这条路径两个方向的边的值(因为是无向边). 4.…
人生中的第一道黑题... 其实就是k短路模板 #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <cstdlib> #include <queue> using namespace std; const int MAXN=400005; int init(){ int…
题目大意:给定一个 N 个点,M 条边的无向无权图,求从 1 号点出发到其他每个点最短路的条数. 题解:在跑 dij 时顺便维护 cnt[ ] 数组,用来记录到每个点的最短路条数. 代码如下 #include <bits/stdc++.h> using namespace std; typedef pair<int,int> P; const int maxn=1e6+10; const int mod=100003; inline int read(){ int x=0,f=1;…
题目:https://www.luogu.org/problemnew/show/P1979 感到无从下手.但不妨用dp的角度来看.因为空格只有在指定棋子的旁边才有用,所以状态记成制定棋子的位置与空格在自己的哪侧. 转移有两种:与空格交换位置 或 让空格换一个方向.为了第二个转移,需要预处理,bfs出指定棋子在 (x,y) 时从它的哪边走到哪边的最短路. dp的转移可以套到最短路里做.一开始需要让空格来到指定棋子的四个方向(bfs).然后多源最短路或者做4遍最短路. 别忘了优先队列自然的就是从大…
这道题可以用各种算法踩掉,我选择的是SPFA. 因为题目要求计数,所以我们开一个ans数组表示数量. 分两种情况讨论: 一:dis_v>dis_u+1 最短路被更新了,可以直接ans_v=ans_u覆盖. 二:dis_v==dis_u+1 又找到一条最短路,将条数相加即可. 具体看代码: #include<bits/stdc++.h> #define mod 100003 using namespace std; struct Edge { int to,next; }e[]; ],cn…
目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例 输出样例 说明 思路 AC代码 总结 题面 题目链接 P1342 请柬 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计划.许多学生被雇来分发这些请柬.每个学生志愿者被指定一个确切的公共汽车站,他或她将留在那里一整天,邀请人们参与. 这里的公交系统是非常特殊的:所有的线路都是单向的,连…
目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例 输出样例 说明 思路 AC代码 题面 题目链接 P1266 速度限制 题目描述 在这个繁忙的社会中,我们往往不再去选择最短的道路,而是选择最快的路线.开车时每条道路的限速成为最关键的问题.不幸的是,有一些限速的标志丢失了,因此你无法得知应该开多快.一种可以辩解的解决方案是,按照原来的速度行驶.你的任务是计算两地间的最快路线. 你将获得一份现代化城市的道路交通信息.为了使问题简化,地图只包括路口和道路.每条道…
题目描述 在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能).在每个路口,都有一个开关决定着出去的轨道,每个开关都有一个默认的状态,每辆电车行驶到路口之后,只能从开关所指向的轨道出去,如果电车司机想走另一个轨道,他就必须下车切换开关的状态. 为了行驶向目标地点,电车司机不得不经常下车来切换开关,于是,他们想请你写一个程序,计算一辆从路口A到路口B最少需要下车切换几次开关. 输入输出格式…
洛谷P2832 行路难 分析+题解代码[玄学最短路] 题目背景: 小X来到了山区,领略山林之乐.在他乐以忘忧之时,他突然发现,开学迫在眉睫 题目描述: 山区有n座山.山之间有m条羊肠小道,每条连接两座山,只能单向通过,并会耗费小X一定时间. 小X现在在1号山,他的目的是n号山,因为那里有火车站. 然而小X的体力是有限的.他每通过一条羊肠小道,就会变得更疲劳,导致他通过任意一条羊肠小道的时间都增加1. 输入格式: 第一行两个数,n,m 第2行到第m+1行,每行3个数A,B,C,表示A.B之间有一条…
洛谷:传送门 bzoj:传送门 参考资料: [1]:https://xht37.blog.luogu.org/p5304-gxoigzoi2019-lv-xing-zhe [2]:http://www.cnblogs.com/cjyyb/p/10736124.html 题意: 一个图 n 个点 m 条边,里面有 k 个特殊点,问这 k 个点之间两两最短路的最小值是多少? 之所以做这道题,是因为早晨的时候,做CF的这道题(戳这里),题意都木有读懂(…
原文链接https://www.cnblogs.com/zhouzhendong/p/9258043.html 题目传送门 - 洛谷P3953 题目传送门 - Vijos P2030 题意 给定一个有向图,有 $n$ 个节点 $m$ 条边,边权值 $\in[0,1000]$ . 小明要从 $1$ 走到 $n$ ,要求路径长度最大为 $d+k$ ,其中 $d$ 为 $1$ 到 $n$ 最短路长度. 问小明有多少种走法,答案对 $p$ 取模.如果有无数种走法,那么输出 $-1$ . $n\leq 1…
洛谷题目传送门 一进来就看到一个多月前秒了此题的ysn和YCB%%% 最长公共子序列的\(O(n^2)\)的求解,Dalao们想必都很熟悉了吧!不过蒟蒻突然发现,用网格图貌似可以很轻松地理解这个东东? 设字符串长度为\(n,m\),那么想象我们有一个\(n+1\)行\(m+1\)列的网格图,只能从左下角往右.上两个方向走.定义每条路径的长度都为\(1\).记第\(i\)行第\(j\)列为\((i,j)\). 话说网格图真tm难画 求最长公共子序列本质上是在两个序列中寻找最多的配对,而且这些配对的…
To 洛谷.1144 最短路计数 题目描述 给出一个N个顶点M条边的无向无权图,顶点编号为1-N.问从顶点1开始,到其他每个点的最短路有几条. 输入输出格式 输入格式: 输入第一行包含2个正整数N,M,为图的顶点数与边数. 接下来M行,每行两个正整数x, y,表示有一条顶点x连向顶点y的边,请注意可能有自环与重边. 输出格式: 输出包括N行,每行一个非负整数,第i行输出从顶点1到顶点i有多少条不同的最短路,由于答案有可能会很大,你只需要输出mod 100003后的结果即可.如果无法到达顶点i则输…
题目传送门:bzoj2118 洛谷P2371 这道题看了题解后才会的..果然是国家集训队的神仙题,思维独特. 首先若方程$ \sum_{i=1}^{n}a_ix_i=k $有非负整数解,那么显然对于每一个$ a_i $方程$ \sum_{i=1}^{n}a_ix_i=k $都必有非负整数解.于是若取$ Min=\min(a_i) $,那么对于任意$ j \in [0,min) $,若对于自然数数$ k $,$ \sum_{i=1}^{n}a_ix_i=k (k \equiv j (mod \ M…
题目请戳这里 一句话题意: 给你一张n个节点,m条单向边的图,求1到n第k短的路. emmm,纪念第一个黑题(我是真的菜啊!!) 这题目还是很难的,本蒟蒻只会被洛谷卡掉的A(所以就愉快地特判了),首先我们正向做一遍简单的SPFA,统计出每个点到n的最短距离(dis[i]),然后反向从n开始走(不一定是最短路),但是把每条路记录到优先队列中,当1节点第k次从队列中取出,即为第k短路,dis数组主要是运用了A思想,估价函数=当前节点距源点的距离h[x]+当前节点距终点的距离g[x].当然本题并不是纯…
题目: POJ3255 洛谷2865 分析: 这道题第一眼看上去有点懵-- 不过既然要求次短路,那估计跟最短路有点关系,所以就拿着优先队列优化的Dijkstra乱搞,搞着搞着就通了. 开两个数组:\(dis\)存最短路,\(dis2\)存次短路 在松弛的时候同时更新两个数组,要判断三个条件 (\(u\)是当前考虑的点,\(v\)是与\(u\)有边相连的点,\(d(u,v)\)表示从\(u\)到\(v\)的边长) 1.如果\(dis[v]>dis[u]+d(u,v)\),则更新\(dis[v]\)…
洛谷1144 最短路计数 传送门 其实这道题目的正解应该是spfa里面加一些处理,,然而,,然而,,既然它是无权图,,那么就直接bfs了,用一个cnt记录一下每一个点的方案数,分几种情况讨论一下转移,最后输出cnt即为结果.. 题目中所说的重边和自环啥的没看出来有啥影响.. #include <cstdio> #include <cstring> #include <algorithm> + ; ; int que[maxn]; bool vis[maxn]; * ma…
洛谷 P2384 最短路 题目背景 狗哥做烂了最短路,突然机智的考了Bosh一道,没想到把Bosh考住了...你能帮Bosh解决吗? 他会给你100000000000000000000000000000000000%10金币w     (不就是 0 吗...) 题目描述 给定n个点的带权有向图,求从1到n的路径中边权之积最小的简单路径.    (注意!是求积而不是求和) 输入输出格式 输入格式: 第一行读入两个整数n,m,表示共n个点m条边. 接下来m行,每行三个正整数x,y,z,表示点x到点y…
自TG滚粗后咕咕咕了这么久,最近重新开始学OI,也会慢慢开始更博了.... 最短路算法经典的就是SPFA(Bellman-Ford),Dijkstra,Floyd: 本期先讲两个经典的单源最短路算法: 首先是我最喜(hao)欢(xie)的SPFA(可惜经常被卡) SPFA: Warning:SPFA在OI竞赛中慎用,极易容易被卡!!! 基本流程: 从起点开始,每次将扫到的点入队,每个点遍历所有与其相连的点,并更新最短路,如果该点未入队,则将其入队: 均摊复杂度为$ O(KE) $(K=2),但因…
传送门 解题思路 很长的题,实际上在一个有向图(点有点权)中求一个从起点1到终点n的路径,使得这条路径上点权最大的点与点权最小的点的差值最大(要求必须从点权较小的点能够走到点权较大的点). ——最短路?? ——不像呀. (可是洛谷标签上写着呀) 就是一个写起来像最短路的一个图中的dp. 我们用dis1[i]表示从1号点到第i号点的路径上的最小值,用dis2[i]表示从i号点到第n号点的最大值,最后只需要找出最大的(dis2[i]-dis1[i])即可. 怎么求dis2呢?这里有一种方法——建反图…
接触到的新内容,[同余最短路]. 代码很好写,但思路不好理解. 同余最短路,并不是用同余来跑最短路,而是通过同余来构造某些状态,从而达到优化时间空间复杂度的目的.往往这些状态就是最短路中的点,可以类比差分约束跑最短路(f[i]+w<=f[j]构造最短路不等式(例题luogu 小k的农场)) ——来自洛谷P3403 Liao_rl 的题解 [P3403跳楼机] 题目背景 DJL为了避免成为一只咸鱼,来找srwudi学习压代码的技巧. 题目描述 Srwudi的家是一幢h层的摩天大楼.由于前来学习的蒟…
洛谷P1144-最短路计数 题目描述: 给出一个\(N\)个顶点\(M\)条边的无向无权图,顶点编号为\(1-N\).问从顶点\(1\)开始,到其他每个点的最短路有几条. 思路: \(Dijkstra\)的一个变形题目. 在跑\(Dijkstra\)松弛的时候,若dis[v] > dis[u] + 1那么res[v]=res[u],若dis[v] == dis[u] + 1那么res[v] += res[u],其中res[v]存储的是点\(1\)到点\(v\)的最短路的数量.这里用到了\(dp\…
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 4630  Solved: 1797[Submit][Status][Discuss] Description Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定的价格.Alice和Bob现在要从一个城市沿着航线到达另一个城…