图论
文章平均质量分 63
to cling
Everything negative - pressure, challenges - is all an opportunity for me to rise.
展开
-
K. 复合函数 (基环树)
【代码】K. 复合函数 (基环树)原创 2022-10-10 23:10:47 · 257 阅读 · 0 评论 -
J - Mex Tree (思维)
【代码】J - Mex Tree (思维)原创 2022-10-10 22:46:39 · 241 阅读 · 0 评论 -
Link with Game Glitch(spfa判负环)
给出n种物品,这些物品可以进行转换。最大取多少,才能使这些物品无法转换成无限多的物品。明显就是一道图论题目。原创 2022-07-31 09:58:15 · 248 阅读 · 0 评论 -
E2. Escape The Maze (hard version) (思维 + 最短路)
有一个n个点的迷宫,迷宫有n-1条边,是一棵树。A在节点1,k个朋友在k个不同的节点。每秒所有人都可以移动到相邻的一个节点中,可以同时到达同一个节点。A和他的朋友可以在同一个节点或者在一条边的中点相遇。如果A在不遇到他的朋友的情况下,可以移动到任意一个叶子节点,A获胜,否则A的朋友们获胜。A到所有朋友的最小距离,那么A就获胜。反过来就是A的朋友们获胜。问如果A的朋友获胜,这k个人中最少几个人就可以抓A。A的朋友获胜,求解最小朋友数量。如果A到叶子节点的最小距离。...原创 2022-07-16 01:28:16 · 729 阅读 · 0 评论 -
G2. Passable Paths (hard version) (树的直径 + lca)
给出一个n个结点的树。现在有q个查询,每个查询给出k个点,问是否存在一条简单路径,使得,这k个点都在这条路径上。路径上可以经过这k个点以外的其他点。但要求每条边最多只能走一次。原创 2022-07-15 11:58:50 · 319 阅读 · 0 评论 -
E. Split Into Two Sets(二分图性质 + 种类并查集(扩展域))
节点由两个集合组成,且两个集合内部没有边的图。原创 2022-07-14 22:44:14 · 743 阅读 · 0 评论 -
D1. 388535 (Easy Version)(trie树)
Codeforces Round #779 (Div. 2)ProblemInput30 33 2 1 00 34 7 6 50 21 2 3Output043Solution(我只是把答案翻译了一下( ̄▽ ̄)")首先观察一下 0 ~ 7的二进制字符串的特点0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1让我们单独观察某一列。可以发现,当某一列的前缀长度为 2 的幂次时,0的数量和1的数量相同。其他情况原创 2022-03-29 20:28:11 · 831 阅读 · 0 评论 -
Collision (dfs深度奇偶性原理 / LCA)
div2 每日一题CollisionTitleSolution显然,如果两个点之间的最短路径是奇数,则是 “road”, 否则 “town”。可以用lca求出 a,b 的最近公共祖先,然后 由ans=dist[a]+dist[b]−dist[lca(a,b)]ans = dist[a] + dist[b] - dist[lca(a, b)]ans=dist[a]+dist[b]−dist[lca(a,b)]求出两个结点之间的距离。dist[x]dist[x]dist[x] 表示 x 到根节点的原创 2022-05-06 18:24:15 · 211 阅读 · 0 评论 -
最短路径算法——Bellman-Ford算法(模板)
acwing-853收获该算法的第k次循环的意义:路径总数不超过k条的最短路径时间复杂度O(mn)O(mn)O(mn)#include<bits/stdc++.h>const int inf = 0x3f3f3f3f;using namespace std;const int N = 2e5 + 7, M = 1e6 + 7;int d[N], backup[N];int k, n, m;struct Edges{ int x, y, w;}edge[N];in原创 2021-10-25 21:03:40 · 165 阅读 · 0 评论 -
E. Gardener and Tree(拓扑排序)
Codeforces Round #748 (Div. 3)题意给一棵n个节点n-1条边的树,每次删掉所有的叶子节点,操作k次,求剩下的节点数。思路类拓扑排序。先把度数 ≤\le≤ 1的节点入队列,然后进行遍历。建立一个d数组统计每个节点到根节点的层数。最后遍历d数组求出小于k的节点数。剩下的节点即为所求节点。#include<bits/stdc++.h>#include<cstdio>#include<queue>#include<cstdlib&原创 2021-10-16 20:05:55 · 271 阅读 · 0 评论 -
B. Mr. Kitayuta‘s Colorful Graph
传送门题意:输入一个n个顶点,m条边的无向图,两个顶点之间有多个边权。有q个询问,问从u到v有几种边权的路(路径上所有的边权都等于c)。思路:①弗洛伊德算法用一个mp三维数组表示边权为c时,能否从i到达j。(mp[i][j][c])②并查集算法用f[i][j]表示边权为j根节点为i的集合。收获:对于第一种方法。阶段k应该位于第二层循环,表示经过编号不超过k的结点能否从i到达j。若k位于第四层,则表示经过编号k能否从i到达j。意义不同,需要斟酌考虑。方法1:#include<cs.原创 2021-09-07 22:20:25 · 74 阅读 · 0 评论 -
HDU4081 Qin Shi Huang‘s National Road System(次小生成树)
传送门题目来源:2011 Asia Beijing Regional Contest附上大佬链接,此篇文章在该文章基础之上总结 传送门题意有n个城市,秦始皇要修用n-1条路把它们连起来,要求从任一点出发,都可以到达其它的任意点。秦始皇希望这所有n-1条路长度之和最短。然后徐福突然冒出来,说是他有魔法,可以不用人力、财力就变出其中任意一条路出来。秦始皇希望徐福能把要修的n-1条路中最长的那条变出来,但是徐福希望能把要求的人力数量最多的那条变出来。对于每条路所需要的人力,是指这条路连接的两个城市的原创 2021-08-23 20:47:31 · 132 阅读 · 0 评论