
图论
Bill845514379
acmer
展开
-
牛客 树上子链 dp求树的直径
牛客 树上子链 链接题意给出一个树,n点,n-1条边,树上每个点有权重,求这个树权重之和最大的链。就是求树的直径,不过有负数。输入输出仅包含一个数,表示我们所需要的答案。样例题解树的直径dp版的模板因为两遍bfs求树的直径必须保证所有的权值为正,对于既有正数又有负数的情况,无法求得,因为从某一点出发,尽可能延伸到最大,当出现负数时就会限制延伸的区域,从而求得的结果只是局部最...原创 2020-05-06 17:36:54 · 321 阅读 · 0 评论 -
洛谷 P3398 LCA判断交点
题目链接:点我题意:在一个无根树中,判断两条链是否相交。范围:1e5个点 1e5次询问第一行两个正整数n和q,表示这棵树节点的个数和询问的个数。接下来n-1行,每行两个正整数u和v,表示节点u到节点v之间有一条边。接下来q行,每行四个正整数a、b、c和d,表示节点编号,求ab链和cd链是否有交点。实例:5 52 54 21 31 45 1 5 12 2 1 44 1 ...原创 2020-01-21 21:35:17 · 215 阅读 · 0 评论 -
洛谷 P3128 LCA+树上差分
题目链接:点我题目描述:FJ给他的牛棚的N(2≤N≤50,000)个隔间之间安装了N-1根管道,隔间编号从1到N。所有隔间都被管道连通了。FJ有K(1≤K≤100,000)条运输牛奶的路线,第i条路线从隔间si运输到隔间ti。一条运输路线会给它的两个端点处的隔间以及中间途径的所有隔间带来一个单位的运输压力,你需要计算压力最大的隔间的压力是多少。题意在一个无根树中,不断让s到t路径中的点(...原创 2020-01-21 18:59:58 · 344 阅读 · 0 评论 -
求树上距离:LCA与点分治两种解法
杭电2586 戳我题意给出一个加权无根树,多组询问每两点之间的距离。输入格式第一行T,代表有T组测试后面代表每一组测试的格式输入树点的个数n以及输入询问的次数m,再输入n-1条边以及该边的权值以及x,y,代表询问x,y之间的距离数据范围:T<=10 n<=40000 m<=200输出格式输出所有测试询问点对之间的距离暴力做法对于每一组询问,x,y,直接df...原创 2020-01-19 22:39:10 · 1308 阅读 · 0 评论 -
CCF CSP 201412-5 货物调度
货物调度题意 在由n个节点组成的无向图中,AB边的权值C代表,从A到B运输每吨需要的费用。一些节点生产货物,一些节点接收货物(就像快递一样,一方发货一方收货),但是又存在区别,这里默认发货站点能够将货物在当日送达收货站点,但是虽然你可以送到我这里,真正来收获的人预订好是某个时间(周一到周日来计算)来取货,可能要过几天来取,这就出现了暂存费用,每个站点的暂存费用不一样,而且每个站点空间有限...原创 2020-01-16 16:57:36 · 1325 阅读 · 1 评论 -
CCF 201409-4最优配餐
最优配餐题目链接题解多源bfs求网格最短路题意稍微解释一下,在上图中,在不经过红点的先定下,求绿点到最近的蓝点的距离,再对距离加权、求和,为最终的答案。对于多元最短路问题,一般的解法是建立一个超级源点,将问题化为单源最短路问题,再套一个spfa或者迪杰斯特拉算法即可。但是,对于网格问题的最短路,只需要考虑使用bfs即可解决,因为网格边权都是1,一层一层搜肯定是最短的,为了不重复搜,需要...原创 2020-01-15 19:14:32 · 331 阅读 · 0 评论 -
洛谷P3806点分治题解
题目链接:https://www.luogu.org/problem/P3806题目描述给定一棵有n个点的树询问树上距离为k的点对是否存在。输入格式n,m 接下来n-1条边a,b,c描述a到b有一条长度为c的路径接下来m行每行询问一个K数据范围:对于100%的数据n<=10000,m<=100,c<=10000,K<=10000000输出格式对于每个K每行...原创 2019-10-03 10:36:15 · 227 阅读 · 0 评论 -
2019年湖南acm省赛 I题(2019)
题目链接:https://ac.nowcoder.com/acm/contest/1099/I题目描述 有一颗 n 个点的带权树,点的编号是 1, 2, …, n. 树有 (n - 1) 条边,求树上两点之间的距离是2019的倍数的点对有多少?题解 点对距离计数:点分治 点分治关键是对cal函数进行修改,其他的基本不用改。如果灵活运用cal函数,主要还是要理解几个变量的含义。根据点...原创 2019-10-02 21:24:56 · 866 阅读 · 0 评论 -
2019ccpc秦皇岛1006 Forest Program
题目 Z 国近年来一直在考虑遏制国土沙漠化的方案。在 Z 国广阔的疆域上,有着许多的沙漠。沙漠上干旱少雨,荒无人烟,仅有仙人掌能在这种魔鬼环境中生存。经过 Z 国地质探测局的调查,他们得到了沙漠的实地情况。Z 国的地质探测局是一个热爱 CCPC 的机构,他们喜欢使用图论的方式来描述看到的景色。在得到的数据中,沙漠中的每一个连通块都是一棵仙人掌;一个连通块是一棵仙人掌当且仅当连通块中不存在重边和...原创 2019-09-28 14:41:33 · 259 阅读 · 0 评论 -
牛客 羊吃草(二分图)
题目链接:https://ac.nowcoder.com/acm/contest/1083/D题意有一个草原可以用一个1~400的数轴表示。有n头羊和q个查询。每头羊的编号分别是1,2,3…n。第i头羊只喜爱数轴上[ai,bi]这样的一个闭区间,每一时刻每头羊只可能在自己喜爱的区间的某个点上吃草。现在给出q个查询,每个查询两个整数l,r。你需要计算出在同一时刻,最多能有多少头羊同时在这个区间内...原创 2019-09-06 22:46:15 · 257 阅读 · 0 评论 -
图论中的几大缩点
并查集 并查集缩点,将无向图缩成几个连通块,在图论中应用广,比如讲几条边提取出来,剩余的图缩成几个点,也可以与边双一起用,对边双缩点进行改进。强连通缩点 强连通缩点作用于有向图,意在把能互通的点缩成一个点。边双连通分量 边双连通分量作用于无向图,也是把互通的点缩成一个点,但是点数必须大于2,也就是说至少是一个环,几个环叠加当然也会缩成一个点。点双连通分量 边双连通分量是对点进...原创 2019-08-31 11:23:33 · 1556 阅读 · 0 评论 -
洛谷 P2604网络扩容
题意 给定一张有向图,每条边都有一个容量C和一个扩容费用W。这里扩容费用是指将容量扩大1所需的费用。求: 1、 在不扩容的情况下,1到N的最大流; 2、 将1到N的最大流增加K所需的最小扩容费用。题解 这个题分成两问其实,第一问是第二问的提示,需要先求出最大流(此时费用为0),然后在残量网络中进一步处理,残量网络顾名思义就是网络流剩下之后的网络,很明显求完最大流后的残量网络s到t将不可...原创 2019-08-28 15:52:24 · 125 阅读 · 0 评论 -
种类并查集与带权并查集
种类并查集裸题:食物链题意 在一个生态系统存在一些食物链,这些食物链满足:A吃B,B吃C,C吃A,给出一些关系。问这些关系(A、B同类或A吃B)中假话有多少(按照先后顺序,与前面不矛盾就是真话)思路 很明显我们不管从哪一方考虑,每一种生物最多有三种角色,我吃别人,或者别人吃我,即存在捕食,和天敌,再加上自身,一共三种角色。 所以,为了很好的表示这些关系,我们要对同一种生物进行分身...原创 2019-08-28 15:26:06 · 437 阅读 · 0 评论 -
[POI2008]BLO-Blockade题解/洛谷P3469
题目描述 在Byteotia有n个城镇。 一些城镇之间由无向边连接。 在城镇外没有十字路口,尽管可能有桥,隧道或者高架公路(反正不考虑这些)。每两个城镇之间至多只有一条直接连接的道路。人们可以从任意一个城镇直接或间接到达另一个城镇。 每个城镇都有一个公民,他们被孤独所困扰。事实证明,每个公民都想拜访其他所有公民一次(在主人所在的城镇)。所以,一共会有n*(n-1)次拜访。 不幸的是,一个程...原创 2019-08-19 23:25:06 · 280 阅读 · 0 评论 -
第二届绿色计算机大赛代码挑战预赛(c++第二阶段)
运输成本题意 给出一个有向图,如果点与点之间相互可达,那么经过这些路径不计费,求从某点出发,该图的最长路径是多少。思路 targan强连通算法缩点,相互可达的看成一个点,重新建图,再用拓扑排序求最长路 Ps:存储空间有修改,其他都一样,太大本地编译器无法编译。 洛谷P3387有道一模一样的题,模板,稍微改一下就行。 两个模板基本没什么变动,前面一直在尝试删边让他不连通,但是...原创 2019-08-22 16:30:49 · 669 阅读 · 0 评论 -
第二届绿色计算机大赛代码挑战赛(第二阶段C++图论题)
城市道路挑战任务 A 国的国土由若干个城市组成,这些城市分布在若干个岛屿上,城市之间由一些 双向 道路连接,并且 互相联通 。如果一条道路跨越了两个岛屿,那么这条道路就是一座桥。 现在你有一张 A 国的地图,地图上标明了 A 国所有的城市和道路,但并未标明岛屿。 其中 A 国的桥满足了以下条件:如果将一条道路 删去之后,存在两个城市 不再联通,那么这条道路 一定是 一座桥。现在,请...原创 2019-08-17 23:11:30 · 723 阅读 · 2 评论 -
codeforces 652E 题解
Pursuit For Artifacts题目连接:https://codeforc.es/problemset/problem/652/E题意 给出一个有向图,问:从A到B是否存在一条路径,路径长度大于0(两点距离只有0和1两个值)思路点缩重建图,再dfs 细节:点缩不提,重新建图关键处理长度为1的边,判断两点是否属于同一个缩点,如果属于则要标记,当A和B路径(包括AB)中包含这...原创 2019-08-22 16:42:53 · 287 阅读 · 0 评论 -
HDU3394题解
题意给出一张无向图(连通数可能有多个)1、求出桥有多少个2、求出有多少边在两个或两个以上的回路中共同存在,求出这些边所在环的边数之和思路点双连通分量,targan算法,顺便把桥也计数问题二:找回路,用点双,点双有两种状态,单边和或者环的组合体,判断是否在环中是否有重边,只需要判断没有点双中边的数量和点的数量1、边数=点数-1 单边2、边数=点数 单独成环3、边数>点数 ...原创 2019-10-14 22:58:56 · 334 阅读 · 0 评论 -
floyd最小环
floyd求无向图及有向图最小环题意 求出无向图或有向图中的最小环、最小环的定义为,该图中所有环中,权值之和最小。无向图最小环 根据floyd算法的性质,从结点1到n开始松弛,假设松弛到k结点时,此时1–>k-1之间的最短路已经全部求出。一个环至少有 3 个顶点,设某环编号最大的顶点为 L ,在环中直接与之相连的两个顶点编号分别为 M 和 N (M,N < L),则最大编号...原创 2019-08-22 22:18:04 · 549 阅读 · 0 评论 -
codeforces 734E 并查集缩点 + 树的直径
题目连接:https://codeforc.es/contest/734/problem/E题意 给出一颗生成树(边为n-1),树的每一点有两种颜色,现有一种操作:能将与某一点同一种颜色的点集颜色翻转,求至少需要多少次这样的操作能将整棵树变为同一种颜色。思路 并查集缩点,用两个集合分别存初始黑白两色的集合,同一种颜色的集合看成一个点,将不同颜色的缩点进行重建图。在新图上只需要求出树的直...原创 2019-08-27 11:35:36 · 181 阅读 · 0 评论 -
差分约束基础
题意给出n个区间,每个区间中至少选出c个数,要求满足这n个条件下,至少可以选出多少个数。思路假设 ai bi ci 表示在ai到bi这个区间至少选ci个数构造dis[a]表示从0到a选了dis[a]个数所以有不等式:dis[bi]-dis[ai]>=ci0<=dis[i]-dis[i-1]<=1最后建图求最大值就可以代码#include<bits/...原创 2019-08-28 10:36:53 · 114 阅读 · 0 评论 -
洛谷4208 最小生成树计数
题意最小生成树计数思路基尔霍夫kirchhoff矩阵N-1阶主子式的行列式即为最小生成树的数目,需要注意这里必须满足每一条边都相等。基尔霍夫Kirchhoff矩阵 K =度数矩阵 D - 邻接矩阵 A注意:邻接矩阵存是否连接N-1阶主子式:对于N矩阵,任取r,去掉r行r列剩余的矩阵所以最终归结如何快速求行列式:由高斯消元,将矩阵化为上三角,最终答案就是对角线之积,O(n^3).如...原创 2019-08-28 15:11:31 · 230 阅读 · 0 评论 -
HNOI2012矿场搭建 题解
HNOI2012矿场搭建题目连接https://www.luogu.org/problem/P3225题目描述 煤矿工地可以看成是由隧道连接挖煤点组成的无向图。为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处。于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之后,其他挖煤点的工人都有一条道路通向救援出口。 请写一个程序,用来计算至少需要设置几个...原创 2019-08-19 23:07:31 · 308 阅读 · 0 评论