最短路径
verdin黄大锤
afo啦!
展开
-
2022牛客寒假算法基础集训营6 G迷宫2
题目:迷宫2有一个n*m的迷宫,迷宫第i行第j列上标着一个方向ci,j∈{L,R,U,D},牛妹站在格子(1,1),出口在格子(n,m)(n,m),牛妹想要走出迷宫,但牛妹只会按以下策略走:设牛妹当前在格子(x,y)(x,y),则若cx,y=L,则牛妹下一步走到格子(x,y-1)(x,y−1)若cx,y=R,则牛妹下一步走到格子(x,y+1)(x,y+1)若cx,y=U,则牛妹下一步走到格子(x-1,y)(x−1,y)若c_{x,y}=D,则牛妹下一步走到格子(x+1,y)(x+1,y)原创 2022-02-18 23:07:17 · 375 阅读 · 0 评论 -
这一题的题号其实是回文串 (题目来自 洛谷 uid105496 @KevinYu)
题目:题目背景在网上搜题解会有惊喜。题目描述XX国的城市道路网可以抽象为一个n*mn∗m的网络。XX国交通委提醒您:道路千万条,转向仅kk条。乱闯红绿灯,车祸两行泪。你在这一条路上可以横着走,可以竖着走,但是你一旦走了就不能转向。当然,为了方便,有kk个十字路口是可以转向的。但是为了安全,转向时要等红绿灯。规定无论是横着走,竖着走都耗费pp个单位的时间,在指定路口转向,都需耗费...原创 2019-03-26 15:26:36 · 268 阅读 · 0 评论 -
校内膜你赛 马云回家
题目:题目描述Mr_he 是一个求变的人,所以每天从学校机房回到家都要走不同的路径,当然劳累一天然 后漫步 在新鲜的大路上,打望过往行人和车辆也是一件非常惬意的事。 那么现在已经知道,从 Mr_he 的学校到家有n 个交叉路口,把他们从1..n 编号,我们认 为编 号为1 的是学校,编号为2 的为家,有m 条双向大路把这些路口连接起来。 Mr_he 打算每天沿着一条不同的路径回家(如果两条路径...原创 2019-02-13 14:45:54 · 294 阅读 · 0 评论 -
全明星路径
题目:题目描述给你一个 N 个结点的有向图,而且给你一个 N * N 的邻接矩阵,表示两个结点之间是否有边。star 是这样定义的 : 它有一个中心结点,并且中心结点至少有 3个出度,出度用于计算 star 的光芒程度。 对于一个结点V 来说,它可以有多颗star, 记为结点 V 的 star number. 例如, 如果结点V 的出度是 5, 那么结点V的 star number 通过计算等...原创 2019-02-15 22:24:06 · 170 阅读 · 0 评论 -
洛谷 P1522 牛的旅行 Cow Tours
题目:牛的旅行思路:先预处理出两点间的距离,跑一边floyd,然后处理出每个点到离它最远的和它连通的距离L[i]。然后再对于每个点,枚举所有和它不连通的点j,用L[i]+L[j]+d(i,j)更新最小答案。注意下,一个牧场的最长路径有可能比L[i]+L[j]+d(i,j)长。代码:#include<bits/stdc++.h>using namespace std;#...原创 2018-12-10 16:43:22 · 341 阅读 · 1 评论 -
洛谷 P1099 树网的核
题目:树网的核思路:floyd求多点最短路。枚举路径端点,暴力的算每个点到路径的距离。一个点k到路径(i,j)的距离为:(d[i][k]+d[j][k]-d[i][j])/2代码:#include<bits/stdc++.h>using namespace std;#define maxn 300#define read(x) scanf("%d",&x)...原创 2018-12-20 13:43:49 · 147 阅读 · 0 评论 -
洛谷 P4568 [JLOI2011]飞行路线
题目:飞行路线思路:建分层图,跑最短路。代码:#include<bits/stdc++.h>using namespace std;#define maxn 200000#define maxm 500000#define read(x) scanf("%d",&x)struct Edge{ int y,z; Edge(){} Edge(int yy,...原创 2018-11-27 15:53:50 · 208 阅读 · 0 评论 -
【模板·次短路】 洛谷 P2865 [USACO06NOV]路障Roadblocks
题目:[路障Roadblocks](P2865 [USACO06NOV]路障Roadblocks)思路:次短路模板。正反求最短路dist1[x]和dist2[x],表示1到x的最短路和x到1的最短路。枚举每条边更新答案。注意:priority_queue是大根堆!&lt;运算符不能定义错!代码:#include&lt;bits/stdc++.h&gt;using namespace...原创 2018-11-07 12:07:35 · 245 阅读 · 0 评论 -
2018/10/30 膜你赛 迷宫
题目:题目描述破了魔法阵后,亮亮进入了一座迷宫。这座迷宫叫做“梦境迷宫”,亮亮只有走出这座迷宫,才能从睡梦中醒来。梦境迷宫可以用无向图来表示。它共有 n 个点和 m 条双向道路,每条道路都有边权,表示通过这条道路所需的时间,且每条道路可以多次经过。亮亮位于一号点,而出口则是 n 号点。原本,亮亮该找到一条最短路,快速冲出迷宫,然而,梦境迷宫的特殊之处在于,如果沿着最短路到达出口,亮亮就会永...原创 2018-10-30 21:15:28 · 274 阅读 · 0 评论 -
洛谷 P1608 路径统计
题目:路径统计思路:把dijkstra改一下就好。要注意dijkstra一定不能写错,写得时候我把边权当成最短路塞堆里了,WA了好久……代码:#include<bits/stdc++.h>using namespace std;#define maxn 2000#define inf (1e9)#define read(x) scanf("%d",&x)...原创 2018-10-24 19:23:06 · 190 阅读 · 0 评论 -
洛谷 P1144 最短路计数
题目:最短路计数思路:bfs时同时维护次数。代码:#include<bits/stdc++.h>using namespace std;#define maxn 1000000#define read(x) scanf("%d",&x)int n,m;vector<int> a[maxn+5];int dist[maxn+5],cnt[ma...原创 2018-10-24 16:35:04 · 159 阅读 · 0 评论 -
NOIP2016 day1T3 洛谷 P1850 换教室
题目:换教室思路:dp。先用floyd预处理出每两间教室的最短路。状态 f[i][j][0/1] 表示 考虑前 i 个时间段,提交 j 次申请,第 j 次申请通过/不通过 的期望最短距离。转移:一、 当前教室不更换,此时f[i][j][0]=min(f[i-1][j][0]+dist[c[i]][c[i-1]], f[i-1][j][1]+dist[c[i]][d[i-1...原创 2018-10-22 21:03:09 · 161 阅读 · 0 评论 -
spfa模板
题目:单源最短路径思路:据说spfa死了,当时在庆幸用了这么多年的dijkstra还活得好好的,然而写费用流发现不会spfa……然后就开始恶补spfa了……代码:#include<bits/stdc++.h>using namespace std;#define read(x) scanf("%d",&x);#define maxn 10000#define...原创 2018-09-20 21:30:20 · 287 阅读 · 0 评论 -
HDU 6386 Age of Moyu
题目:Age of Moyu思路:裸的堆优化dijkstra代码:#include&lt;bits/stdc++.h&gt;using namespace std;#define ll long long#define maxn 100struct Pair{ int x,y; Pair(){} Pair(int xx,int yy) { ...原创 2018-08-14 16:32:27 · 198 阅读 · 0 评论 -
洛谷 P1186 玛丽卡
题目:玛丽卡思路: 先在图中求出一条最短路径。 假设删掉的边不在最短路径上,他对答案是没有贡献的,可以忽略。 所以接下来可以枚举最短路径上的边,将其标记,再跑最短路。 很多题解都写的spfa,这里用优先队列优化的dijkstra,复杂度大概是 O(n*(n+m)logn),但是luogu玄学评测机竟然卡过去了STO,听说此题也基本没有更优的算法了。代码:#include<...原创 2018-08-03 21:51:59 · 239 阅读 · 0 评论 -
洛谷 P2910 [USACO08OPEN]寻宝之路Clear And Present Danger
题目:寻宝之路思路:用floyd求出任意两点最短路,再根据输入求和。代码:#include<bits/stdc++.h>using namespace std;#define maxn 100#define maxm 10000int n,m;vector<int> pb;int dist[maxn+5][maxn+5]={0};void...原创 2018-08-03 21:30:06 · 311 阅读 · 0 评论