![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
文章平均质量分 79
cqbzcsq
这个作者很懒,什么都没留下…
展开
-
关于一笔画问题的一些思考(欧拉路Fleury算法、逐步插入回路法、以及另一种可能的解法)
这是一个经典的图论问题了最近复习离散的时候又恰好看到了,发现自己以前的解法似乎有点bug然后开始出反例卡自己,结果发现卡不掉?然后再好好想了想,发现这个看起来有问题的做法可能确实没问题。注意:欧拉路、欧拉回路、欧拉图、半欧拉图四个概念的区别。原创 2023-02-11 15:26:24 · 1140 阅读 · 0 评论 -
[2020 年联考 A 卷] 作业题 (莫比乌斯反演+变元矩阵树定理)
题面:https://www.luogu.com.cn/problem/P6624题解一道套路题先来考虑gcd=1的情况如何求所有生成树的边权和?使用变元矩阵树,把每一条边的边权赋为1+wx(w为它原来的边权)然后求其在mod x^2意义下的答案那么x项的系数就是所有生成树的边权和因为要得到x项,只能有一条边贡献出自己的边权,其它的边都只能贡献1所以这样做是可以求出生成树的边权和的我们可以对矩阵上的数维护二元组如何求逆元呢?那么两边除一个a^2..原创 2020-06-22 10:36:03 · 376 阅读 · 0 评论 -
[APIO2018] Duathlon 铁人两项 (圆方树赋权+拆分计算贡献)
题面题解比较容易想到建广义圆方树关键是怎样给点赋权如果我们枚举了路径的两个端点那么有多少个中转点是合法的呢?假设我们枚举到的是两个红色点,那么路径上的合法中转点(蓝色点)就是图中标记的部分显然,这两点路径上的点双中的每个点都是可以取到的我们可以把所有方点的权值赋为它所管辖的点双大小这样,以两个红点为路径端点的合法中转点个数就是其路径的点权和但是由于路径两端的端点是不能取到的,并且两个方点之间的公共圆点会被重复算所以还应该将所有圆点的点权赋为-1..原创 2020-06-15 17:18:31 · 234 阅读 · 0 评论 -
CF708D Incorrect Flow(上下界最小费用可行流)
题解比较巧妙的费用流修改流量与容量使得一张图满足流守恒与流量小于容量的条件我们先来解决第二个问题:流量小于容量发现只需要对c<f的边加上f-c的代价就可以了(直接修改容量c)再来解决流守恒的条件我们利用上下界网络流固定原图每条边的流量现在只需要加上一些额外的修改边,再跑一遍上下界网络流,这个图就可以自动满足流守恒的条件对于一条边u,v,c,f当c<f时由于我们预支了f-c的代价,使得c'=f如果我们想要在现在减小流量,我们也可以回...原创 2020-06-15 11:53:02 · 192 阅读 · 0 评论 -
[十二省联考2019]字符串问题 (SAM优化建图+DAG上DP)
题面见:https://www.luogu.com.cn/problem/P5284题解当年考的时候直接写了40暴力。。。现在看了看,好像可以用后缀树优化建图先倒着建一个SAM,然后再倍增定位每个区间后缀树上的边就从父亲连向儿子,A连边向B此时我们本来应该让B向其定位的区间连边的但是一个点可能会对应多个区间,直接连边会出很多其他的问题于是我们换一种思路,把定位在同一个点的区间按照长度排序,B排在A的前面先从SAM上的点依次向这些点连边,遇到了B之后就再从B开始..原创 2020-06-12 00:04:56 · 346 阅读 · 0 评论 -
[ARC079D] Namori Grundy (基环树)
题解一道基环树思维题首先,题目给出了一棵基环外向树,求是否存在一种对节点的赋权方案使得当前点u的权值=自己所有出点v的权值的mex显然,无出度的点的权值必须赋为0然后我们只需要在每一个非叶子节点取它所有儿子权值的mex就可以了但是环上的权值怎么办呢当环上每个点的出点的权值y不等于它的权值x时,可以保留当前的方案如果存在一对点u->v的权值x,y相等,就还需要对点u的权值x加一,并继续调整考虑一种极端的情况:环上所有点的权值都相等如3 3 ...原创 2020-06-11 18:44:53 · 243 阅读 · 0 评论 -
[THUSC2017]巧克力 (斯坦纳树+二分+随机化)
这是本菜鸡写过的最难的斯坦纳树题了。。。干脆叫它斯坦纳树终结者好了题解随机化的部分类似于这道题只不过这里是要求中位数最小,那道题是要求和最小我们可以二分这个中位数mid把所有权值小于等于mid的格子设一个新权值-1,把大于mid的格子设为1采用结构体DP,同时求出优先格子数最少,再考虑最小化权值和的DP值如果当前的最小权值和是小于等于0的,则说明我们至少选了一半以上的小于mid的数,即mid可以取到更小的值于是我们随机了颜色的分配方案之后,利用二分...原创 2020-06-11 00:04:18 · 302 阅读 · 0 评论 -
[WC2016]挑战NPC (一般图最大匹配----带花树)
题解:首先所有的球都得装进桶里,所以每个球都向可行的桶连边一个桶最多可以装3个球,考虑把一个桶拆成三个点现在要求半空桶的最大数量,如果一个桶只有一个点匹配,那么就cnt++但是这样可能会有两个原本可以分开放的点匹配到同一个桶导致答案减小有一种巧妙的建图方法,可以使能分开放的点尽量分开把一个桶拆成的三个点两两连边这样,在求最大匹配的情况下放在一起连的最大匹配数为3,而分开的最大匹配数为4就可以解决最大化半空桶数的问题如图:(红色为匹配边)但是由...原创 2020-06-10 13:19:34 · 248 阅读 · 0 评论 -
20200606分治算法总结
Goodbye Souvenir给定长度为nn的数组, 定义数字XX在[l,r][l,r]内的值为数字XX在[l,r][l,r]内最后一次出现位置的下标减去第一次出现位置的下标给定mm次询问, 每次询问有三个整数a, b, ca,b,c,询问规则如下:当a = 1a=1时, 将数组内第bb个元素更改为cc当a = 2a=2时, 求区间[b,c][b,c]所有数字的值的和输入:第一行两个整数n,mn,m第二行nn个整数, 表示数组第3-3 + m3−3+m行, 每行三个整数, 表示每次询问原创 2020-06-06 15:12:16 · 356 阅读 · 0 评论 -
20200606KD树、虚树总结
大码量题过多引起极度不适Prince's Problem题意:一个n个点的树,每个点有权值ai,给出Q次询问(u,v,w)求在路径u,v上的每一个点与w求gcd的积题解:先把询问离线,做一个树上差分然后分质因子考虑,发现只需要维护一下每种质因子的每种次幂有多少个询问的时候做一个前缀和,再把大于当前w的p因子次幂的取一个min值即可代码:(我不知道为什么写了3.5KB。。。)#include<cstdio>#include<cstring>#inclu原创 2020-06-06 14:44:13 · 249 阅读 · 0 评论 -
LOJ#6496. 「雅礼集训 2018 Day1」仙人掌 (圆方树+分治NTT)
题面:https://loj.ac/problem/6496题解好毒瘤的一道题先把仙人掌转成圆方树我们考虑DP设f[u][0/1/2]表示点u如果向上方连0/1/2条出边,以u为根的子树的所有边的定向的方案数如果一个点u是圆点那么点u的答案f[u][0/1/2]就是满足(u的所有儿子贡献的出度和<=a[u]-(0/1/2))的所有方案数这种转移可以写成卷积的形式,而且每个多项式的最高次幂不超过2,可以进行分治NTT优化(这里的方点(原图的环)就可以...原创 2020-05-23 22:48:18 · 326 阅读 · 0 评论 -
Union on Tree(毒瘤数据结构题)(点分树+虚树+树点覆盖去重)
There is a country whose road system is a tree, the nodes in the tree represent cities and the edge is the road between them, and each edge is of unit length. For safety, the government should put guards to protect all cities. But the government is in shor原创 2020-05-12 16:23:16 · 525 阅读 · 0 评论 -
LOJ#6073. 「2017 山东一轮集训 Day5」距离 (可持久化树链剖分)
题面:#6073.「2017 山东一轮集训 Day5」距离题解好题又是原题重测的题大概就是让我们求感觉一点思路都没有啊。。。那我们先来看一个超级弱化版的题目([LNOI2014]LCA)它是让我们求这个题目相比之下就简单了许多关于计算dep[LCA(i,z)]我们可以先把i到1的路径上的所有点权都加一,再来求z到1路径的点权和由于这...原创 2020-05-04 00:40:44 · 287 阅读 · 0 评论 -
LOJ#6038. 「雅礼集训 2017 Day5」远行 (LCT维护两点距离+并查集维护树的直径)
题面:https://loj.ac/problem/6038题解居然再原题重测(原题重错、新题爆错)的考场上切了一道LCT的题(对于我这种菜鸡来说这是新题)一看就是维护森林中每棵树的直径以为可以用倍增LCA来求两点距离,发现它强制在线想了一下,发现可以用LCT来求两点距离因为所有的边权都为1,所以我们把一条链spilt出来后得到的链的节点树-1就是两点的距离...原创 2020-05-01 00:07:39 · 312 阅读 · 0 评论 -
2020.4.29省选模拟赛 A B C(容斥、图论计数DP、树套树+set)
A题目描述或许前路永夜,即便如此我也要前进,因为星光即使微弱也会为我照亮前途。已知一个 n*m 的矩阵,矩阵的每个元素都是非负整数.已知第 i 行的最大值为 ri ,第 j 列的最大值为 cj .求矩阵数目.输入格式第一行一个数 T ,表示数据组数.对于每组测试数据,第一行两个数 n , m 表示矩阵大小.接下来一行 n 个数,表示 r 数组 接下来一行 m 个数,...原创 2020-04-29 21:48:12 · 592 阅读 · 0 评论 -
省选模拟赛20200229(by Ark) T3 买买买(动态点分治)
题解٩(๑>◡<๑)۶人生第一道动态点分治٩(๑>◡<๑)۶一开始我点分治都不怎么会,更别说动态点分治了然后开始肝题解和std,肝了我两天,终于搞懂了然后写了一上午+下午,调了一晚上,终于A掉了如果不知道动态点分治,请看这里其实这道题思路并不难想点分树+线段树只是修改边的时候会比较麻烦考虑一条边改变权...原创 2020-03-05 20:30:49 · 249 阅读 · 0 评论 -
HDU5977 Garden of Eden(点分治+高维后缀和(超集和))
When God made the first man, he put him on a beautiful garden, the Garden of Eden. Here Adam lived with all animals. God gave Adam eternal life. But Adam was lonely in the garden, so God made Eve. Whe...原创 2020-03-05 16:14:19 · 504 阅读 · 0 评论 -
BZOJ3730 震波+BZOJ4372 烁烁的游戏(动态点分治)
震波在一片土地上有N个城市,通过N-1条无向边互相连接,形成一棵树的结构,相邻两个城市的距离为1,其中第i个城市的价值为value[i]。不幸的是,这片土地常常发生地震,并且随着时代的发展,城市的价值也往往会发生变动。接下来你需要在线处理M次操作:0 x k 表示发生了一次地震,震中城市为x,影响范围为k,所有与x距离不超过k的城市都将受到影响,该次地震造成的经济损失为所有受影响城市的价...原创 2020-03-05 15:55:19 · 163 阅读 · 0 评论 -
动态点分治讲解+例题([ZJOI2007]Hide 捉迷藏)
首先要知道点分治和点分树(大家应该都懂的)点分树的高度是log的,并且每一层的子树大小一定小于等于父亲的子树大小的1/2所以我们可以对点分树上的每个点维护一些数据结构(如:线段树,堆,平衡树……)说着简单写着难(hlq07没事写一发普通平衡树,ljh没事写一发紫荆花之恋,Freopen没事写一发希望,时代在进步)可能就我觉得难。。。(其实动态点分治的思想有点像树链剖分,但是它们...原创 2020-03-05 15:36:17 · 209 阅读 · 0 评论 -
[WC2008]游览计划(斯坦纳树+输出方案)
Input第一行有两个整数,N和 M,描述方块的数目。接下来 N行, 每行有 M 个非负整数, 如果该整数为 0, 则该方块为一个景点;否则表示控制该方块至少需要的志愿者数目。 相邻的整数用 (若干个) 空格隔开,行首行末也可能有多余的空格。Output由 N + 1行组成。第一行为一个整数,表示你所给出的方案中安排的志愿者总数目。接下来 N行,每行M 个字符,描述...原创 2020-03-05 15:08:36 · 289 阅读 · 0 评论 -
Dig The Wells (建虚点+斯坦纳树)
Dig The WellsYou may all know the famous story “Three monks”. Recently they find some places around their temples can been used to dig some wells. It will help them save a lot of time. But to dig th...原创 2020-03-05 14:55:11 · 373 阅读 · 0 评论 -
Peach Blossom Spring(斯坦纳树)
Peach Blossom SpringTao Yuanming(365-427) was a Chinese poet of Eastern Jin dynasty. One of his most famous works is "Peach Blossom Spring", which is a fable about a chancediscovery of an ethereal v...原创 2020-03-05 14:49:23 · 805 阅读 · 0 评论 -
斯坦纳树+例题(LYK loves graph)
大家应该都知道最小生成树问题吧那么斯坦纳树问题就是在一张图上固定k个点,求一个最优子图使这k个点连通(其他的点可以不连通)解决这类问题有一种通用的状压DP方法设f[i][S]表示:当点i与这k个连通情况为S时,所花费的最小代价那么有两种比较显然的转移f[i][S]=f[i][T]+f[i][S^T] (T是S的子集,先转移,保证在第二步转移时的dp值是最优的)f[u]...原创 2020-03-05 14:44:22 · 656 阅读 · 0 评论 -
20200226省选模拟赛(by Tiw) T1 客星(长链剖分)
题解首先有一个性质:对于一个点,它的独特点都会分布在(它到整棵树的两个直径端点中较远的那一个端点的路径)上我们如果以当前点为根,那么下面的那一部分直径就会消除上面的那一部分的直径的部分独特点注意,如果设转轴为O,那么点O对于点x依然是独特的当然,直径上还会有一些支链,它们也会消除一部分独特点为什么不用考虑下面的直径上的支链?因为下...原创 2020-02-26 23:09:53 · 244 阅读 · 0 评论 -
20200223省选模拟赛 总结
题解好题!!!竞赛图就是把一个无向完全图的所有边定向这道题其实是比较简单的,考试的时候一直没看到删除k个钦定点图是一个DAG的条件,就一直没有思路我们可以把钦定点设为A集合,其他的点设为B集合显然,如果A集合有环,那么肯定无解根据条件,B集合也是DAG所以A、B集合都是DAG我们可以考虑一下他们的拓扑序设A->B的有向边为x类边,...原创 2020-02-25 22:46:59 · 196 阅读 · 0 评论 -
20200224省选模拟赛 总结
题解至今都没看懂std:#include <bits/stdc++.h>inline int read() { int ret, cc, sign = 1; while (!isdigit(cc = getchar())) sign = cc == '-' ? -1 : sign; ret = cc - 48; whil...原创 2020-02-25 22:17:57 · 216 阅读 · 0 评论 -
省选模拟赛20200213 T2 开开车(多边形三角剖分图分治求最短路)
题解直接分治啊啊啊啊啊啊啊啊!!!!!!!!!!找一条对角线,把两边的点数尽量分的均匀然后在这个图中用bfs求出这条对角线两个端点到其它所有点的距离一次是O(n)的(注意对角线是不会交叉的,所以在左右两个部分的点想要到达对方,就必定会经过中间的分割边的端点,如果走到分治的区域之外,它一定会浪费步数)由于n的规模在分治中不断减小,分治层数是logn的,所...原创 2020-02-15 22:20:52 · 262 阅读 · 0 评论 -
省选模拟赛20200212 树树树 (Boruvka算法+set+启发式合并)
题解Boruvka算法:每个点都先找到离自己最近/最远的点,把这些边连上,再把形成的连通块看成点继续操作显然这样做每次连通块数目至少会减半问题就在于怎样快速求一个块到块外点的距离我们可以把绝对值展开出4中情况每种情况中,对于每一个点,把它对绝对值之和的贡献放到set里面(开4个set,存同一个点的4种贡献)然后求一个块的最远点时,就把该连通块所有点的所...原创 2020-02-13 20:39:09 · 179 阅读 · 0 评论 -
[HNOI2014]世界树 (虚树DP+倍增)
世界树世界树是一棵无比巨大的树,它伸出的枝干构成了整个世界。在这里,生存着各种各样的种族和生灵,他们共同信奉着绝对公正公平的女神艾莉森,在他们的信条里,公平是使世界树能够生生不息、持续运转的根本基石。世界树的形态可以用一个数学模型来描述:世界树中有n个种族,种族的编号分别从1到n,分别生活在编号为1到n的聚居地上,种族的编号与其聚居地的编号相同。有的聚居地之间有双向的道路相连,道路的长度为...原创 2020-01-16 22:36:35 · 186 阅读 · 0 评论 -
A Research on "The Hundred Family Surnames"(虚树上求最远点对)
The Hundred Family Surnames is a classic Chinese text composed of common Chinese surnames. The book was composed in the early Song Dynasty. It originally contained 411 surnames, and was later expanded...原创 2020-01-13 14:59:34 · 187 阅读 · 0 评论 -
a + b Problem(主席树优化网络流建图)
题解网络流优化建图经典题现在才来写。。。(希望为时不晚)开始正解首先,我们可以想到一个正常(暴力)的建图方法(图中红色的边i'->x存在当且仅当 x满足li<=ax<=ri)明显暴力建图会T,5000*5000*5000*5000于是我们有个想法,把所有a权值相邻的点放到一起来连边,用一个父亲节点来管辖它...原创 2019-12-23 15:00:24 · 462 阅读 · 0 评论 -
2019.12.12 C (点分治+去重)
C内存限制:256 MiB时间限制:1000 ms题目描述给定一棵有n个节点的无根树,树上的每个点有一个非负整数点权。定义一条路径的价值为路径上的点权和-路径上的点权最大值。 给定参数P,我!=们想知道,有多少不同的树上简单路径,满足它的价值恰好是P的倍数。 注意:单点算作一条路径;u!=v时,(u,v)和(v,u)只算一次。输入格式第一行包含两个整数n,p,意义见题面描述。 ...原创 2019-12-20 22:53:14 · 215 阅读 · 0 评论 -
2019.12.11 B(矩阵树定理+拉格朗日插值)
问题 B: B时限:1Sec内存:256 MB题目描述有一棵由n个点n-1条边构成的树,点的标号从0到n-1;这棵树有一个神奇的功能,我们可以将它的一条边拆掉,再将一条边连上,当然,要保证这样操作之后它还是一棵树;现在我们想知道,在进行不超过k次的操作后,能够造出多少种不同的树。定义两棵树不同为:存在一棵树中有边(x,y)而另一棵树中没有;输入格式第一行...原创 2019-12-13 22:22:27 · 361 阅读 · 0 评论 -
2019.12.11 A(prufer序列DP)
A时限:1Sec内存:256 MB题目描述给出n个点,每个点的度数限制为ai,现在需要选出x个点构成一棵树,要求这x个点中每个点的度数不超过这个点的度数限制,求x=1,2,……,n时能构成的不同的树的个数。不同的树定义为:选取的点的集合不同,或一棵树中存在边(x,y)而另一棵不存在。输入文件名a.in输出文件名a.out输入格式第一行一个正整数T,代表有...原创 2019-12-12 22:52:28 · 209 阅读 · 0 评论 -
网络流问题总结
一、纯最大流问题这种一般遇到得比较少,除非是板题二、最大流最小割问题这种问题一般是把全集分为两类数,求分开这个集合(或是选出某个子集)的最小代价是多少。有关技巧:利用容量为INF的边来干涉决策,如最大权闭合子图将所选集合的点的邻接边权求和分析,如最大密度子图判定S,T集合时必须用dfs相关算法:分数规划易错点:cnt初始时没有赋为1(很容易浪费时间...原创 2019-12-06 00:30:21 · 324 阅读 · 0 评论 -
BZOJ3698 XWW的难题(上下界网络流+gap优化的细节处理)
XWW给你一个N*N的正实数矩阵A,满足XWW性。称一个N*N的矩阵满足XWW性当且仅当:(1)A[N][N]=0;(2)矩阵中每行的最后一个元素等于该行前N-1个数的和;(3)矩阵中每列的最后一个元素等于该列前N-1个数的和。现在你要给A中的数进行取整操作(可以是上取整或者下取整),使得最后的A矩阵仍然满足XWW性。同时XWW还要求A中的元素之和尽量大。第一行一个整数N,N ≤ 100...原创 2019-12-04 21:41:54 · 251 阅读 · 0 评论 -
Pumping Stations(最小割树+边分治)
Mad scientist Mike has applied for a job. His task is to manage a system of water pumping stations.The system consists ofnpumping stations, which are numbered by integers from 1 ton. Some pairs o...原创 2019-12-02 22:47:35 · 1056 阅读 · 0 评论 -
Stoer-Wagner算法(全局最小割)
题面:https://www.luogu.com.cn/problem/P5632题解:全局最小割Stoer-Wagner算法附上论文:关于证明:论文的证明写得非常详细,在此不再赘述关于时间复杂度最大邻接搜索是来求任意非固定两点的最小割,做完一次最大邻接搜索之后还要缩点重做,直到全图只剩一个点所以使用堆优化的复杂度大概是O(n^2logn...原创 2019-12-02 22:30:25 · 454 阅读 · 0 评论 -
最小割树(Gomory-Hu Tree)的非递归构造方法
感觉大家写的都是递归构造的方法,其实非递归构造写法更好理解,写起来也更简单关于递归构造与非递归构造王文涛论文中都有详细的证明与讲解最小割树存在的主要原因就是这个定理:接下来补充一下论文中另外一个重要定理的证明:如图:我们把它们按顺序连起来我们可以看出,这些点对 分为两类,一类是跨过u,v最小割的点对,一类是同侧点对,并且必定有一组跨过最小割的点对(因为最...原创 2019-11-30 17:34:26 · 310 阅读 · 0 评论 -
NOI2006最大获利(最大权闭合子图 || 类最大密度子图)
本文会讲解NOI2006最大获利的改进算法,此算法在胡伯涛论文中有所提及原创 2019-11-27 21:23:42 · 283 阅读 · 0 评论