![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
freeze up
集腋成裘
展开
-
差分约束建图总结
没有概念,233,直接进入主题:一般引入源点 sss,令 xs=0x_s=0xs=0,即 dis[s]=0dis[s] = 0dis[s]=0。不等式转化建图xu+w≥xvx_u + w \geq x_vxu+w≥xvadd(u,v,w)add(u, v, w)add(u,v,w)xu+w>xvx_u + w > x_vxu+w>xvxu+(w−1)≥xvx_u + (w - 1) \geq x_vxu+(w−1)≥xvadd(u,v,原创 2020-07-03 21:13:40 · 249 阅读 · 0 评论 -
LOJ146, LOJ147 DFS序
LOJ146:给定一棵 nnn 个结点的树,根结点为 rrr,初始点权 wiw_iwi,mmm 次操作:① 1,a,b,x1, a, b, x1,a,b,x,aaa 到 bbb 最短路径间点权都加上 xxx;② 2,a2, a2,a,求结点 aaa 的点权;③ 3,a3, a3,a,求结点 aaa 子树点权和。(n,m≤106)(n, m \leq 10^6)(n,m≤106)链接:...原创 2020-04-13 22:07:43 · 439 阅读 · 0 评论 -
CodeForces - 917D Stranger Trees
题意:给定一个有 nnn 个结点的树,结点带标,分别求与其有 k(0≤k<n)k(0 \leq k \lt n)k(0≤k<n) 条相同边的树的数量,答案模 109+710^9 + 7109+7。(n≤100)(n \leq 100)(n≤100)链接:https://vjudge.net/problem/CodeForces-917D解题思路:也是个生成树计数的问题,但限制...原创 2020-03-24 21:49:06 · 158 阅读 · 0 评论 -
一类树形dp & 点分治题目总结
题目链接:1、https://blog.csdn.net/weixin_44059127/article/details/104093004 路径权值和(异或)2、https://blog.csdn.net/weixin_44059127/article/details/104098526 路径权值和(奇偶)3、https://blog.csdn.net/weixin_44059127/ar...原创 2020-03-17 12:13:47 · 266 阅读 · 0 评论 -
计蒜客 - A1082 青云的机房组网方案(困难)
题意:给定一棵有 nnn 个结点的树,结点带权 aia_iai,求点权互质的所有点对距离和。(n,ai≤105)(n, a_i \leq 10^5)(n,ai≤105)链接:https://nanti.jisuanke.com/t/A1082解题思路:考虑点分治处理路径,那么子问题为求序列中所有互质点对的信息,即处理 gcd=1gcd = 1gcd=1 的点对,记答案为 f(1)f(...原创 2020-03-16 21:42:44 · 244 阅读 · 0 评论 -
HDU - 6064 RXD and numbers
题意:求有多少序列 A1,A2,⋯ ,AnA_1, A_2, \cdots, A_nA1,A2,⋯,An 满足以下条件:1≤Ai≤m1 \leq A_i \leq m1≤Ai≤mA1=An=1A_1 = A_n = 1A1=An=1∀ 1≤x≤m, ∃ p, Ap=x\forall~1 \leq x \leq m, ~\exists ~...原创 2020-03-13 21:46:53 · 105 阅读 · 0 评论 -
CodeForces - 1137C Museums Tour
题意:给定一个 nnn 个点、mmm 条边的有向图,给给定每周天数 ddd,每个点处设有一个博物馆,给出每个博物馆在每周内的开放的情况,在某周第一天从 111 号点出发,走过一条边的时间恰都为一天,问最多能访问多少个博物馆。(n,m≤105,d≤50)(n, m \leq 10^5, d \leq 50)(n,m≤105,d≤50)链接:https://codeforces.com/cont...原创 2020-02-28 21:18:04 · 340 阅读 · 0 评论 -
CodeForces - 1120D Power Tree
题意:给定一棵有 nnn 个结点的树,点 iii 的费用为 aia_iai。第一阶段选购一些结点,第二阶段将会给所有叶结点随机赋权 bib_ibi,第三阶段可进行的操作为,选定第一阶段购买的某点 uuu,对 uuu 子树内所有叶结点加上 xxx,可无限次操作,问在第一阶段最少花费多少,能使得无论 bib_ibi 如何,都可以在第三阶段将所有叶结点权值变为 000。并输出所有可能成为最优解的...原创 2020-02-27 22:21:55 · 120 阅读 · 0 评论 -
HDU - 5016 Mart Master II
题意:给定一棵有 nnn 个结点的树,树结点代表一个城市,其中有些城市建立了集市,一个城市里的人会选择去最近的有集市的城市,如果有多个相同距离的,则去标号最小的。现在你可以选择在一个没有集市的城市里建立一个集市,要求最大化地被作为选择,输出有多少个城市会选择到该集市。(n≤105)(n \leq 10^5)(n≤105)链接:https://vjudge.net/problem/HDU-50...原创 2020-01-31 16:38:41 · 114 阅读 · 0 评论 -
HYSBZ - 1040 骑士
题意:有 nnn 个骑士,每个骑士有战斗力值,并有且仅有一个厌恶的骑士对象,骑士不能与其厌恶的骑士一同出战,问能一同出战的骑士的总战斗力的最大值。(n≤106)(n \leq 10^6)(n≤106)链接:https://vjudge.net/problem/HYSBZ-1040解题思路:转化为求带权最大独立集,若关系图森林,则可以通过树形 dpdpdp 直接求解,现在有 nnn 个点、...原创 2020-01-31 12:49:37 · 134 阅读 · 0 评论 -
HDU - 4916 Count on the path
题意:给定一棵有 nnn 个结点的树,再有 qqq 次询问,每次询问 uuu 到 vvv 路径上没有出现的最小编号(结点)。(n,q≤106)(n,q \leq 10^6)(n,q≤106)链接:https://vjudge.net/problem/HDU-4916解题思路:如果数量级是 10^5 我将用主席树.。以 111 号结点为根,若 u,vu,vu,v 的 lcalcalca 不...原创 2020-01-30 14:58:56 · 207 阅读 · 0 评论 -
Gym - 102460B The Power Monitor System
题意:给定一棵有 nnn 个结点的树,开始时树的结点和边均为白色,现要求将结点和边全部染黑,可以选择一个结点,将其直接染黑,代价为 111,结果为该结点及其邻接结点、边均被染黑。对于其他结点递归地考虑:① 若某条边被染黑,则两端结点被染黑;② 若某条边两端结点被染黑,则该边被染黑;③ 若某个点度为 k>1k \gt 1k>1,且其中 k−1k - 1k−1 条边被染黑,则剩余的那条边...原创 2020-01-29 22:56:00 · 635 阅读 · 3 评论 -
CodeForces - 935E Fafa and Ancient Mathematics
题意:给定一个长度为 EEE 的算式,格式为 ddd (ddd 是个位数字) 或 (E1 op E2)( E_1~op~E_2)(E1 op E2),其中 E1,E2E_1, E_2E1,E2 均为算式,opopop 为 +++ 或 −-−。在给定的算式中所有 opopop 均未知,用问号替代,再给定 PPP 和 MMM,表示能填入的 +++ 和 ...原创 2020-01-28 15:35:51 · 190 阅读 · 0 评论 -
CodeForces - 960E Alternating Tree
题意:给定一棵有 nnn 个结点的树,边权均为 111,结点带点权 ViV_iVi,一条路径 (v1,v2,...,vm)(v_1,v_2,...,v_m)(v1,v2,...,vm) 的权值定义为 ∑i=1m(−1)(i+1)Vvi\sum\limits_{i = 1}^{m}(-1)^{(i + 1)}V_{v_i}i=1∑m(−1)(i+1)Vvi,求所有路径权值总和。(n≤...原创 2020-01-28 11:57:26 · 339 阅读 · 0 评论 -
CodeForces - 771C Bear and Tree Jumps
题意:给定一棵有 nnn 个结点的树,边权均为 111,再给定 kkk,求 ∑in∑j=i+1n⌈dis(i,j)k⌉\sum\limits_{i}^{n}\sum\limits_{j=i+1}^{n}\lceil\cfrac{dis(i, j)}{k}\rceili∑nj=i+1∑n⌈kdis(i,j)⌉。(n≤2×105,k≤5)(n \leq 2 × 10^5, k \leq 5)...原创 2020-01-27 16:56:53 · 226 阅读 · 1 评论 -
CodeForces - 766E Mahmoud and a xor trip
题意:给定一棵有 nnn 个结点的树,点带权,求所有路径异或值之和。(n≤105)(n \leq 10^5)(n≤105)链接:https://codeforces.com/problemset/problem/766/E解题思路:若是路径权值和,则树形 dpdpdp 就可,现在变成异或,按位考虑。异或值之和可拆位表示成各二进制位数量,树形 dpdpdp 时维护子树内各二进制位数量,则可...原创 2020-01-27 15:23:15 · 2691 阅读 · 0 评论 -
CodeForces - 708C Centroids
题意:给定一棵有 nnn 个结点的树,问对于每个点 uuu,是否有可能通过移动至多一条边使得原图仍为一棵树并且 uuu 为树的重心。(n≤4×105)(n \leq 4 × 10^5)(n≤4×105)链接:https://codeforces.com/problemset/problem/708/C解题思路:考虑 uuu 能成为重心的情况,找到其重儿子 vvv,若重儿子子树大小不超过 ...原创 2020-01-27 11:35:31 · 247 阅读 · 0 评论 -
CodeForces - 685B Kay and Snowflake
题意:给定一棵有 nnn 个结点的以 111 号结点为根的树,有 qqq 次询问,每次询问以 xxx 为根的子树的重心(若删去 uuu 后的最大联通块的大小的两倍小于等于 siz[x]siz[x]siz[x],则 uuu 为 xxx 的重心)。(n,q≤3×105)(n, q \leq 3×10^5)(n,q≤3×105)链接:https://codeforces.com/problemse...原创 2020-01-26 18:17:20 · 223 阅读 · 0 评论 -
CodeForces - 1294F Three Paths on a Tree
题意:给定一棵有 nnn 个结点的树,边权均为 111,求三个点 a,b,ca,b,ca,b,c 使得在路径 ab,ac,bcab,ac,bcab,ac,bc 间的边数最多。输出最多边数即选择的三点。(3≤n≤2×105)(3 \leq n \leq 2×10^5)(3≤n≤2×105)链接:https://codeforces.com/problemset/problem/1294/F解...原创 2020-01-26 14:31:10 · 215 阅读 · 0 评论 -
CodeForces - 461B Appleman and Tree
题意:给定一棵有 nnn 个结点的树,结点颜色为白或者黑,求删去 k(0≤k<n)k(0 \leq k \lt n)k(0≤k<n) 条边后,各联通块恰含有一个黑色结点的方案数。(n≤105)(n \leq 10^5)(n≤105)链接:https://vjudge.net/problem/CodeForces-461B解题思路:树形 dpdpdp,dp[u][0]dp[u]...原创 2020-01-26 12:05:07 · 146 阅读 · 0 评论 -
HDU - 4303 Hourai Jeweled
题意:给定一棵有 nnn 个结点的树,结点、边带权,一条路径的权值非零且为路径上点权和当且仅当该路径上不存在相邻边的边权相同,求所有路径的权值和。(n≤3×105)(n \leq 3×10^5)(n≤3×105)链接:https://vjudge.net/problem/HDU-4303解题思路:第一反应写了点分,对于 calcalcal 函数,只需要直接 dfsdfsdfs 求出各子树...原创 2020-01-25 20:34:20 · 171 阅读 · 1 评论 -
HDU - 4008 Parent and son
题意:给定一棵有 nnn 个结点的树,再有 qqq 次询问,每次询问以 XXX 为根时,YYY 的子结点中、后代结点中编号最小的结点各是哪个,若 YYY 是叶结点,输出无解。(n,q≤105)(n,q \leq 10^5)(n,q≤105)链接:https://vjudge.net/problem/HDU-4008解题思路:如果仅要求以 111 为根,则树形 dpdpdp 一下就可以得到...原创 2020-01-25 10:23:00 · 159 阅读 · 0 评论 -
HDU - 6613 Squrirrel
题意:给定一棵有 nnn 个结点的树,边带权,现在可以选择一条边权置 000,求一个结点作为根,使得叶结点最大深度最小。(n≤2×105)(n \leq 2×10^5)(n≤2×105)链接:https://vjudge.net/problem/HDU-6613解题思路:考虑没有边权置 000 操作,很容易写出树形 dpdpdp 的转移式。现在考虑可以将一条边权置 000,则 dpdpd...原创 2020-01-23 22:10:10 · 290 阅读 · 0 评论 -
HDU - 3534 Tree
题意:给定一棵有 nnn 个结点的树,求两点间最长距离,以及最长距离的点对个数。(n≤ ?)(n\leq~?)(n≤ ?)链接:https://vjudge.net/problem/HDU-3534解题思路:即求直径,以及直径的个数。直径可以由两次 dfsdfsdfs 得到,距离为 ddd 的点对个数,点分可解。更简单的做法是树形 dpdpdp,自下而上维护最长链及最...原创 2020-01-23 13:46:57 · 162 阅读 · 0 评论 -
CodeForces - 293E Close Vertices
题意:给定一棵有 nnn 个结点的树,边带权,求有多少对结点 (i<j)(i \lt j)(i<j) 满足 iii 到 jjj 的路径长度不大于 lll 且 路径上的边权和不大于 www。(n≤105)(n\leq 10^5)(n≤105)链接:https://vjudge.net/problem/CodeForces-293E解题思路:点分治,calcalcal 子问题即求...原创 2020-01-23 09:59:24 · 202 阅读 · 0 评论 -
HDU - 4871 Shortest-path tree
题意:给定一个有 nnn 个点,mmm 条边的带权无向图,先求出 111 号结点为根的最短路径树,111 号结点在最短路图上按结点字典序最小的顺序走到其他结点。然后求恰含 kkk 个结点的最长链的长度,以及这样的恰含 kkk 个结点的最长链有几条。(n≤3×104, m≤6×104)(n \leq 3×10^4,~m \leq 6×10^4)(n≤3×104, m≤6×104...原创 2020-01-22 11:37:48 · 170 阅读 · 0 评论 -
CodeChef - PRIMEDST Prime Distance On Tree
题意:给定一个有 nnn 个结点的树,边权为 111,随机选取一对结点,问结点间距离为质数的概率。(n≤5×104)(n \leq 5×10^4)(n≤5×104)链接:https://vjudge.net/problem/CodeChef-PRIMEDST解题思路:路径问题,用点分。calcalcal 函数的求解,fftfftfft 处理出所有路径长度,再判断即可。参考代码:#in...原创 2020-01-21 19:19:46 · 168 阅读 · 0 评论 -
HDU - 4670 Cube number on a tree
题意:给定一棵有 nnn 个结点的树,每个结点上有权值 aia_iai,问有多少条路径满足路径上的点权乘积为立方数,点权可以被表示为 kkk 个素数。(n≤5×104, k≤30)(n \leq 5×10^4, ~k \leq 30)(n≤5×104, k≤30)链接:https://vjudge.net/problem/HDU-4670解题思路:点分,一条路径点权...原创 2020-01-21 13:03:00 · 147 阅读 · 0 评论 -
HDU - 4812 D Tree
题意:给定一棵含 nnn 个结点的树,每个结点上有一个数值 aia_iai,判断是否存在点 (u, v)(u,~v)(u, v) 满足其路径上的结点数值乘积模 1e6+31e6+31e6+3 为 kkk,若存在则输出字典序最小的一对。(n≤1e5n\leq 1e5n≤1e5)链接:https://vjudge.net/problem/HDU-4812解题思路:点分治...原创 2019-11-29 17:09:18 · 219 阅读 · 0 评论 -
2019ICPC沈阳网络赛 - D. Fish eating fruit
题意:给定一棵有 nnn 个结点的树,树边带权,求任意两点间距离中模 333 分别为 0, 1, 20,~1,~20, 1, 2 的路径长度和。(n≤1e4, ∑n≤1e5n\leq 1e4,~\sum n \leq 1e5n≤1e4, ∑n≤1e5)链接:https://nanti.jisuanke.com/t/41403解题思...原创 2019-11-28 16:32:00 · 146 阅读 · 0 评论 -
网络流 24 题
1、搭配飞行员求二分图最大匹配,建立源点 SSS,汇点 TTT,SSS 向正驾驶员连接容量 111 的边,副驾驶员向 TTT 连接容量为 111 的边,可以匹配的正副驾驶员之间连接容量为 111 的边,求最大流即为最大匹配。set<int> li, ri;int main() { Dinic<int> dn; int n, m; scanf("%d%d", &...原创 2019-11-11 21:01:08 · 216 阅读 · 0 评论 -
HDU - 6604 Blow up the city
题意:给定一个有 n 个点,m 条边的 DAG,再有 q 次询问,每次询问给定两点 a 和 b,问有多少种情况使得破坏一个点后,a 或 b 不能到达出度为 0 的点。(n, q <= 1e5, m <= 2e5)链接:https://vjudge.net/problem/HDU-6604解题思路:将边反向,则为求入度为 0 的点不能到达 a 或 b 的情况。引入一个 0 号结...原创 2019-10-29 17:33:58 · 128 阅读 · 0 评论 -
2-SAT 建图总结
2-sat:给定一个由布尔值组成的有 n 个元素的序列 A,再有若干限制,每个限制针对至多两个元素,求满足所有限制的序列 A 或者判定不存在。常见的限制条件:记每个限制条件给定 a op b, a0, b0, a1, b1a~op~b,~a_0,~b_0,~a_1,~b_1a op b, a0,&nb...原创 2019-10-25 23:22:42 · 332 阅读 · 0 评论 -
POJ - 2438 Children's Dining
题意:有 2n 个小朋友围着圆桌坐成一圈,其中有 m 对小朋友互相之间有矛盾,不能坐在相邻位置。已知每个小朋友最多与 n - 1 个小朋友有矛盾关系,求一个合法的入座顺序。(n <= 200, m <= n * (n - 1) )链接:https://vjudge.net/problem/POJ-2438解题思路:即为求哈密顿回路, 且在此特殊图中哈密顿回路一定存在(Dira...原创 2019-10-14 22:59:01 · 130 阅读 · 0 评论 -
Gym - 102279L - Left or Right? How about neither?
题意:给定一个长为 n 的数组 a,现在起点在 x,终点在 y,前进(向右)花费 R 的能量,后退花费 L 的能量,并且当在 i 位置时,可以花费 C 的能量瞬移到 j (aj=aia_j = a_iaj=ai)。问到达终点需要花费的最少能量。(n <= 1e5, L, R, C, aia_iai <= 1e9)链接:https://vjudge.net/problem/G...原创 2019-10-12 23:11:48 · 230 阅读 · 0 评论 -
2019牛客国庆集训派对day7 F - 地铁
题意:有 n 个地铁站,m 条双向的地铁线路,其中第 i 条属于 cic_ici 号线路,连接两个地铁站,往返均需花费 tit_iti 时间。当从某个站点搭乘 cic_ici 号线到下个站点,再搭乘 cjc_jcj 号线去另一个站点,需要额外花费 ∣ci−cj∣|c_i - c_j|∣ci−cj∣ 时间。问从 1 号地铁站到 n 号的需要花费的最少时间。(n,m,ci<=1e...原创 2019-10-12 22:45:02 · 161 阅读 · 0 评论 -
Comet OJ - Contest #12 C - Bus Station
题意:有 m 个公交车站,共开通了 n1 + n2 趟公交,前 n1 趟公交从 1 号一直开到 n 号,后 n2 趟公交从 n 号一直开到 1 号,记 xi,jx_{i, j}xi,j 为第 j 趟公交抵达第 i 号车站的时间,假设公交车停靠时间极短。现在 t1 时刻你在第 s 号车站,在 t2 时刻会等到朋友,期间你希望尽可能在公交车上坐着,当然,最后要在 t2 时刻前回来 s 号车站,问等...原创 2019-10-12 22:46:19 · 352 阅读 · 0 评论 -
POJ - 2449 Remmarguts' Date
题意:给定一个有 n 个点,m 条边的有向带权图,求 s 到 t 的第 k 短路。(n, k <= 1e3, m <= 1e5)链接:https://vjudge.net/problem/POJ-2449解题思路:k 短路练手,注意特判 s == t 。参考代码:#include<cstdio>#include<iostream>#includ...原创 2019-10-11 22:53:36 · 121 阅读 · 0 评论 -
POJ - 1679 The Unique MST
题意:给定一个有 n 个点的无向图,判断最小生成树是否唯一。链接:https://vjudge.net/problem/POJ-1679解题思路:考虑在 Kruskal 算法基础上进行判断。排序后,对于一段权值相同的边,先判断有多少条可以加入最小生成树,统计最终实际加入几条,若两者不相等,说明有环,且环包含至少两条相同权值的边,则最小生成树不唯一。参考代码:#include<b...原创 2019-09-24 21:20:42 · 121 阅读 · 0 评论 -
HYSBZ - 1977 次小生成树 Tree
题意:给定一个有 n 个点、m 条边的无向带权图,求严格次小生成树。(n <= 1e5, m <= 3e5)链接:https://vjudge.net/problem/HYSBZ-1977解题思路:求非严格次小生成树时,替换路径上的最大边,加入的边权可能与其相等,故倍增时多维护一个路径上严格的次大值即可。参考代码:#include<bits/stdc++.h>...原创 2019-09-25 13:09:54 · 125 阅读 · 0 评论