![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ACM——图论
图论
微风袭来
这个作者很懒,什么都没留下…
展开
-
树的简单问题总结
重心定义(参考 Oi Wiki)对于树上的每一个点,计算其所有子树中最大的子树节点数,这个值最小的点就是这棵树的重心重要性质以树的重心为根时,所有子树的大小都不超过整棵树大小的一半一棵树最多有两个重心树中所有点到某个点的距离和中,到重心的距离和是最小的;如果有两个重心,那么到它们的距离和一样在一棵树上添加或删除一个叶子,那么它的重心最多只移动一条边的距离把两棵树通过一条边相连得到一棵新的树,那么新的树的重心在连接原来两棵树的重心的路径上求法动态维护参考:https://www.cn原创 2020-10-14 22:51:12 · 591 阅读 · 0 评论 -
Tarjan系列例题
Tarjan算法——有向图环问题的killerP2863 [USACO06JAN]牛的舞会The Cow Prom洛谷模板题题目问节点大于1的强联通分量个数题解染色的代码稍微修改即可#include<bits/stdc++.h>#define maxl 400010using namespace std; int n,k,ff,top,cnt,cnt2,id,nu...原创 2019-10-31 16:22:31 · 390 阅读 · 0 评论 -
树的子树大小与深度
2281 树的Size之和51nod 2281这题用的是并查集的思想,由于给定了父子关系,所以很容易知道建立并查集,最后find每个数,并且find函数找到一次某个节点,就给这个节点计数一次,代表这个节点有这个子节点#include<iostream>using namespace std;int num[1005],pre[1005];void ans(int x){...原创 2019-09-23 00:12:04 · 2693 阅读 · 0 评论 -
hdu1217(SPFA判负环)
题目给出几个点之间的路径,求是否有边权相乘大于1的环题解之前听说SPFA可以判负环,以为只能真的判边权和为负的环,但是今天这个题打破了我的认知,边权和大于1的环也能用SPFA来判首先得明白SPFA判负环的原理,就是因为求最短路,所以假如我一直走这个负环,我可以一直刷新最短路径,无穷尽的刷,今天这个之所以也能用SPFA来判是因为他的这个环也属于 可以反复刷,无穷尽的增长的,因为大于1的数的乘...原创 2019-09-15 23:05:44 · 316 阅读 · 0 评论 -
hdu2112(Trie树 + Spfa最短路)
题目给出几个字符串对之间的距离,求某两个字符串之间的最小距离题解几个坑点:无向图!无向图!无向图!没有路径输出 -1既有大写又有小写主要思想就是用字典树处理字符串成数字节点,然后用SPFA求最短路,这样就行了#include<bits/stdc++.h>using namespace std;const int maxn =100000;//如果是64MB可以开...原创 2019-09-15 12:23:53 · 88 阅读 · 0 评论 -
POJ 3660(dfs)
题目N (1 ≤ N ≤ 100) cows, conveniently numbered 1…N, are participating in a programming contest. As we all know, some cows code better than others. Each cow has a certain constant skill rating that is...原创 2019-09-14 14:02:15 · 152 阅读 · 0 评论 -
hdu1269(Tarjan)
题目判断有向图是否为强连通图题解Tarjan的模板题,没什么好解释的,记住每次都要进行初始化,只有联通分量个数等于1时,才能说明有向图是强连通图#include<iostream>#include<stack>#include<vector>using namespace std;const int MAXM=10005; int n,m,cn...原创 2019-09-09 14:14:18 · 92 阅读 · 0 评论 -
拓扑排序(转载)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...转载 2019-09-08 21:57:05 · 67 阅读 · 0 评论 -
P2607(基环树+树形DP)
题目最近想要刷博客数,给自己一种努力的假象,最好的方式当然是给做过的题目做一篇题解啦标准树形DP题,选了父节点不能选子节点,唯一难点是基环树的处理题解先找环,只需要找到环上的两个点就行了,其他点不用一起找出,用dfs,断边断边的具体操作是:分别将边上的两个点设为根进行树形DP,但两个点之间还有的关系怎么办呢,就每一次强制不选根节点,然后比较两次DP的结果,选取最大的那个代码#incl...原创 2019-06-18 11:18:38 · 217 阅读 · 0 评论 -
P2661(拓扑排序找最小环)
题目最近没什么课,刷了不少题,但总是懒得写题解,再看了好多篇大佬的千篇题解后,立志以后每做一道题就写一道相应的题解大意是给出一个n个节点,n条路的有向图(一看就知道是多个基环树的求环问题),求最小环的大小题解洛谷里看了几篇都是并查集求环,或者Tarjan无脑求什么最大联通分量,额,我都不会,对于环的处理只会拓扑排序(感觉最容易理解),网上找了个靠谱的拓扑排序的板子,改成最近学的链式前向星存...原创 2019-06-18 10:18:24 · 679 阅读 · 0 评论 -
POJ3009(dfs搜索)
题目POJ3009一个很有趣的迷宫问题,只能朝一个方向直走,当撞到墙上时可以转弯,且那一块墙消失思路数据真的很小,20*20的迷宫,还有转弯的次数限制,完全可以穷举所有路径,然后选最小,可以做一个简单但很实用的优化,减少大量找到答案后的无用搜索if(cishu>ans||cishu>10) return;算法我用的是DFS搜索(不会BFS,哭辽),本题和一般迷宫题不同,...原创 2018-12-27 18:06:50 · 2902 阅读 · 0 评论 -
网络流24题——P2766
题目PS 最近学习网络流真的是头大了,学了几天仍然只会用套Dinic做一些简单的最大流,二分图匹配等问题,感觉网络流的关键是30%的板子水平(必须得深入理解,且易修改)+70%的建模建图水平,等做到那种万物皆可网络流就差不多出师了看了太多神仙建模之后的我做线代高数都想用网络流了,我也太菜了吧Ծ‸Ծ«问题描述:给定正整数序列x1,…,xn 。(1)计算其最长不下降子序列的长度s。(2)...原创 2019-05-15 19:48:33 · 147 阅读 · 0 评论 -
hdu1874(dijk+堆优化)
题目HDU1874思路学习图论的第二天,从最简单的Dijkstra算法开始,hdu1874可以算是一道单源最短路问题的裸题,坑点是两个点之间的路径不唯一,应该选取最小的那条,Dijkstra算法就不用介绍了,具体思路是选取当前最短路径的点,向周围的点进行优化,然后出队,重新选取最短路径点进行更新,堆优化的作用是减少挑选当前最短路径点的时间复杂度,不用for循环逐个访问,而是用一个堆来维护这组...原创 2019-01-08 21:28:39 · 295 阅读 · 0 评论