
图论
图论
璇玑你没有心
这个作者很懒,什么都没留下…
展开
-
P1613 跑路(dp + Floyd)
原题链接:跑路 - 洛谷参考:题解 P1613 【跑路】 - Hydra_ 的博客 - 洛谷博客大佬代码注释写的很详细了,没看明白底下我写的代码的可以去看看大佬写的其实能这么写还有一个条件,就是你看,它的每一条边的长度都是1,所以用倍增。想想看,如果一条边是1,一条边是3,1 + 3是2的2次方,但是如果找的是2^(k - 1)和2^(k - 1),结果就会不对了。所以还是要明白一下题目为什么可以这样用倍增的思想~另:maxlongint不知道是啥,就看成long long开2^6...原创 2022-05-10 20:27:33 · 311 阅读 · 0 评论 -
P2002 消息扩散(图论 Tarjan缩点)
原题链接:消息扩散 - 洛谷思路:想一下就能发现,其实就是要找到有多少个入度为0的点,以它们为消息源得到的结果是最小的。但是有两个问题:有环、重边。有环->缩点,把强联通的几个点(一个环)缩成一个点,然后这个时候其实可以不用重新建图,遍历每一条边,记录每个点的入度,如果这条边的左右两个点属于一个环中,那么就不记录入度;如果不属于一个环中,就记录入度。AC代码:#include<bits/stdc++.h>#define INF 0x3f3f3f3f#define.原创 2022-05-03 21:23:29 · 552 阅读 · 0 评论 -
P1027 [NOIP2001 提高组] Car 的旅行路线 (图 最短路)
原题链接:[NOIP2001 提高组] Car 的旅行路线 - 洛谷AC代码:#include<bits/stdc++.h>using namespace std;#define INF 0x3f3f3f3ftypedef pair<int, int> PII;const double pi = acos(-1.0);#define rep(i, n) for (int i = 1; i <= (n); ++i)#define rrep(i, n) for原创 2022-04-20 19:57:32 · 419 阅读 · 1 评论 -
P1053 [NOIP2005 提高组] 篝火晚会
这题很好,先要用图的知识来判断,然后再思维,很牛,等我晚上回去写题解AC代码:#include<bits/stdc++.h>using namespace std;#define INF 0x3f3f3f3ftypedef pair<int, int> PII;const double pi = acos(-1.0);#define rep(i, n) for (int i = 1; i <= (n); ++i)#define rrep(i...原创 2022-04-20 19:50:10 · 1288 阅读 · 0 评论 -
C. King‘s Path(cf)bfs
原题链接:Problem - 242C - Codeforces题目大意:给你一个1e9 * 1e9的棋盘,给你n个区间 r a b,表示r行的第a到b列是可行区域。问你从x0y0到x1y1最少多少步走到(可以走这个格子的周围一圈八个位置)。思路:注意题目最后说的一句话:It is guaranteed that the total length of all given segments doesn't exceed 1e5.最多给我们1e5个格子可以走,每个格子最多走到一遍,bfs没问原创 2022-04-03 11:34:03 · 387 阅读 · 0 评论 -
B. Frog Traveler(cf)bfs
原题链接:Problem - 1601B - Codeforces题目大意:一个青蛙它从井底跳出去。从x点可以网上蹦[0, ax]的距离到y点,到了y点之后又会掉下来by步。问你它最少走多少步出去。问最少步数,想到用bfs。改了一下午代码,真的好细节呜呜。思路:它其实每次能向上跳到的范围一直往上,用mmin记录,往下跳的点和网上跳的点维护的东西不一样啊啊我又写不出来了但是我有时候能想清楚。这个博主画的图还有写的文很详细。之前看别的博主写的dp先滑再跳,我不是很懂。还是按照顺序来吧。挺难的毕竟19.原创 2022-04-01 19:38:52 · 709 阅读 · 0 评论 -
A. Book 拓扑排序(cf) + dp
原题链接:Problem - A - Codeforces题目大意:给你一本书,有n页,每一次读这本书的时候都是从第一页读到第n页。每页有一个对应的list,每页对应有k页,必须读懂这k页才能读懂这一页(是不是很像拓扑排序)。思路:所以用bfs进行拓扑排序,并且用dp来维护状态:要读懂的这一页是在这一页前面还是后面,当前这一遍就可以读完还是下次才能读完......ans为-1的情况就是最后还有点前面还有点没读懂。有环的情况不会在队列中死循环,因为num[i]不为0时i是进不了队列的。AC原创 2022-03-31 19:58:20 · 484 阅读 · 0 评论 -
D. Nearest Excluded Points(cf)坐标反向BFS
原题链接:Problem - 1651D - Codeforces题目大意:给你n个不同的二维坐标上的点,然后让你分别找到离各店曼哈顿距离最近的点,且这个点不在给你的n个点之中(如果有多个答案,随便写哪个点都行)。思路:如果对每个点bfs,如果是个很密集的图,然后..就wa了。其实想想,很密集的时候,是不是有些点,从中间向外算的时候其实会重复访问查看很多点。我们知道最后找到的答案一定是这n个点上下左右空的点中的一个,所以我们可以提前把这n个点上下左右四个方向不在这n个点中的点加入队列,然后每次寻找原创 2022-03-31 18:39:12 · 483 阅读 · 0 评论