图论
青春苦瓜
这个作者很懒,什么都没留下…
展开
-
1143 Lowest Common Ancestor (30 分)链表里跑LCA
朴素做法:给定了先序 先序排个序得到中序 然后建树 然后LCA就行了LCA可以有两种:一种是当普通二叉树来跑,另一种就是在BST里跑普通二叉树LCA:Tree lca(Tree tree,int a,int b){ if(!tree||tree->data==a||tree->data==b) return tree; Tree l=lca(tree->le...原创 2019-11-22 16:39:11 · 101 阅读 · 0 评论 -
判断是不是完全二叉树的几种方法
我一开始的错误方法(修正后可用):层序遍历把遍历到的第i点赋值idx ,都赋值了以后再次层序遍历看看某个点的左右孩子节点除以二是不是等于他的idx但是 有一个反例:一共两个点,根节点1 1无左孩子 有右孩子2 满足上面方法但是不是完全二叉树所以在判断的时候需要区分一下左右孩子 左孩子/2,右孩子减1再除以二方法二:层序遍历的时候给每个节点的左右儿子标上号(当前 * 2,当前 * ...原创 2019-11-22 14:24:04 · 668 阅读 · 0 评论 -
1021 Deepest Root (25 分)树的直径变形
题意:问给定的图是不是树选定不同的为树根时 树的高度是不同的,求树的高度最大时的树根(不唯一就升序输出)思路:先并查集判连通域 ,不是树就Error是树:一开始傻了 以为只要度为1的点 就一定是满足题意的点结果不是:如图那就考虑树的直径做法任选一点开始DFS,把最大高度的点放入集合A(因为可能不唯一)然后从A中任选一个点继续DFS,把最大高度点放入B然后A+B去重排序输出!...原创 2019-11-21 17:38:06 · 105 阅读 · 1 评论 -
图论板子搞搞
参考博客:本校潘武杰大佬本校秦狗求欧拉回路#include<cstdio>const int N=101108,M=201108;struct Side{ int v,ne,ok,id;}S[M<<1];int t,n,m,sn,cnt,head[N],cur[N],in[N],out[N],fa[N],ans[M<<1];void i...原创 2019-10-13 11:19:41 · 146 阅读 · 0 评论 -
二分图模板整理
染色法#include<iostream>#include<algorithm>#include<string.h>#include<map>#include<queue>#include<cmath>#include<cstdio>#include<stack>#define ll ...原创 2019-10-04 15:56:04 · 130 阅读 · 0 评论 -
HDU - 6152 Friend-Graph 暴力? 拉姆齐定理
思路:首先 卡内存,开个maxn*maxn的数组MLE,用vector 按理说 两两都是朋友也是会爆,但是据说有人用vector暴力水过了正解是在组合数学上,拉姆齐(Ramsey)定理是要解决以下的问题:要找这样一个最小的数n,使得n个人中必定有k个人相识或l个人互不相识。拉姆齐定理的通俗表述:6 个人中至少存在3人相互认识或者相互不认识。该定理等价于证明这6个顶点的完全图的边,用红、...原创 2019-09-27 09:29:01 · 157 阅读 · 0 评论 -
HYSBZ 2763 分层图最短路模板题
思路:下面将双向边简称为边分层建图,在读入边的同时,对于每一层,例如第k层,u+kn到v+kn建层内边,然后建相邻两层的边(权值为d),即u+(k-1)n到v+kn的单向边 和v+(k-1)n到u+kn的单向边(权值为0,即免费边) 然后跑djkstra或spfa#include<iostream>#include<algorithm>#include<s...原创 2019-09-12 14:22:01 · 113 阅读 · 0 评论 -
Layout POJ - 3169 差分约束spfa
第一道差分约束的题**题意:**像其他人一样,奶牛在排队饲料时喜欢靠近他们的朋友。 FJ有N(2 <= N <= 1,000)个编号为1…N的奶牛从左到右按照编号从小到大站在一条直线上等待饲料。牛的数量与它们的编号相同,因为它们可能相当具有挑战性,所以有可能两头或多头奶牛可以在同一位置排队(也就是说,如果我们将每只奶牛看作是位于在数字线上的某个坐标上,那么两个或更多的母牛可以共享相同...原创 2019-08-01 11:01:40 · 118 阅读 · 0 评论 -
差分约束学习
一、何为差分约束系统:差分约束系统(system of difference constraints),是求解关于一组变数的特殊不等式组之方法。如果一个系统由n个变量和m个约束条件组成,其中每个约束条件形如xj-xi<=bk(i,j∈[1,n],k∈[1,m]),则称其为差分约束系统(system of difference constraints)。亦即,差分约束系统是求解关于一组变量的...转载 2019-08-01 10:33:45 · 68 阅读 · 0 评论 -
Caterpillar POJ - 3310(拓扑排序+求树的直径)
不容易啊不容易 搞了够四个小时题意:所有的度数大于1的点(与之有边的点不止一个的点)必须在最长路上,并且不存在环和孤点,问给出的图是否满足以上条件。思路:记录好边的度数之后,遍历度数,如果有是0的便存在孤点,否则继续;然后拓扑排序判环;然后求树的直径并在此过程中记录路径,然后遍历度数 看度数>1的点是不是都在这条路上(大佬的做法:直接求树的直径,因为权值都是1,树的直径+1等于点的个数,...原创 2019-07-31 19:59:56 · 203 阅读 · 0 评论 -
最短路模板(Dijkstra+Bellman+spfa)+树的直径模板
dijkstra#include<iostream>#include<algorithm>#include<string.h>#include<map>#include<queue>#include<cmath>#include<cstdio>#define ll long long#define...原创 2019-07-30 11:28:10 · 128 阅读 · 0 评论 -
POJ-1094 拓扑排序
题意:给定一组字母的大小关系判断他们是否能组成唯一的拓扑序列。思路:典型的拓扑排序,但输出格式上有三种形式:1.该字母序列有序,并依次输出;2.该序列不能判断是否有序;3.该序列字母次序之间有矛盾,即有环存在。而这三种形式的判断是有顺序的:先判断是否有环(3),再判断是否有序(1),最后才能判断是否能得出结果(2)。注意:对于(2)必须遍历完整个图,而(1)和(3)一旦得出结果,对后面...原创 2019-07-29 10:59:00 · 111 阅读 · 0 评论