09 2020 档案
摘要:补题地址 欧拉回路模板题。 思路 这个的关键是:当我们用链式前向星存图时,读第 i 条边(x, y) 如果是无向边:(x,y) 边存的编号是(i - 1) * 2,反向边 (y,x) 边的编号是(i - 1) * 2 + 1。 如果是单向边:(x,y) 边的编号是 i - 1。 所以如果是有向图,&
阅读全文
摘要:Luogu P3953 逛公园 (最短路+dp) 补题地址 题意: 一个有向图,找从1到n的长度在 d 到 d + k 之间的路径个数模 p 的值。(d是1到n的最短路,k,p由输入给出)。 思路: 首先想到dp[i][j]表示1到 i 距离为j的路径个数,那么dp[n][d] + ... + dp
阅读全文
摘要:LOJ#2718. 「NOI2018」归程 (kruskal重构树) 参考博客 题意: 在无向图中,每条边的属性不仅有距离,还有海拔。有Q次询问,每次给出两个值v,p表示一个人从v点出发回到家(家在1点),且世界的海平面海拔是P。也就是小于p的路都在水中。现在这个人可以开车走一段路直到遇到低于海平面
阅读全文
摘要:Kruskal重构树 前置知识:Kruskal算法, LCA 最近刚学,如有错误欢迎提出。 对图建Kruskal重构树的主要作用:求原图中两个点所在路径上的最长边的最小值或最短边的最大值。 如何建Kruskal重构树 在Kruskal的基础上,当两个点x, y 不再一个并查集中,那么我们就再引入一个
阅读全文
摘要:有关MST的两道题 紧急更新:下面两类题不是说一定和MST有关,只是第一类要从大到小贪心处理边,第二类从小到大贪心处理边,直到图联通。好像和MST思想一样。我废话了。 第一道题:旅行(牛客) 第二道题:Maximum Distance(cf) 在第一题中:一条 u 到 v 的路径的 $cost(u,
阅读全文
摘要:DSU on tree 树上启发式合并 自为风月马前卒dalao的博客 首先介绍一下大概流程: 首先处理所有轻链。 如果有重链,再处理重链。注意重链的值不删除。 这样只需要把轻链的贡献算一下加上就好了,不需要处理重链。 最后,如果是轻链,就要删除其对贡献的影响。 void dfs(int u, in
阅读全文
摘要:2-SAT #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<map> #include<queue> #include<vector> #includ
阅读全文
摘要:参考博客 补题链接 这个题太妙啦。2-SAT和两个状态有关,但是显然如果考虑门的开和关那基本没什么思路,因为两个门基本相互独立。但是如果考虑🔑的使用(1)还是不使用(0)两个状态会发现,两个🔑直接还是有一些相互限制的要求的。比如本题要所以门都变成1,且每个门有两个🔑,所以如果原来门是1的那么它
阅读全文
摘要:先用Dijkstra计算出1到i的最短路d[i]。再dfs时如果 d[u] + w == d[v] 时就一直继续向下搜索。这些边都可以保留 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #inclu
阅读全文
摘要:#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<map> #include<queue> #include<vector> #include<stri
阅读全文
摘要://推荐博客// // 2-SAT模板题 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<map> #include<queue> #include<
阅读全文
摘要:让标签带偏了。。所有点和最小的点连边,算上m个特殊边跑MST就行了。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<map> #include<qu
阅读全文
摘要:161D. Distance in Tree (树形DP) Distance in Tree 题意:给一棵树,找两点距离为K的节点对个数 题解: \(dp[i][j]\) 表示 i 节点子树距离 i 为 k 的节点个数。DP转移为: \[ dp[u][0] = 1 \\ dp[u][j] = \su
阅读全文

浙公网安备 33010602011771号