摘要:
###最小点覆盖 #####概念: 用一个点集(点集的数量尽可能小),让每条边都至少和其中一个点关联(边的两端有一端在点集里就算有关联) 最小点覆盖是覆盖所有的边 最小点覆盖==最大边匹配(匈牙利算法) ###最小边覆盖 #####概念: 用一个边集(边集的数量尽可能小),让每一个点最少于其中的一条 阅读全文
摘要:
####二分图定义: 顶点集V可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属于这两个互不相交的子集,两个子集内的顶点不相邻。同一个子集中没有两个点直接相连。 图中没有含奇数条边的环。任何无回路的的图均是二分图。 ####二分图的判定: 如图一个二分图FIG.1都可以分成两个互不相交的 阅读全文
摘要:
#多边形面积 改革春风吹满地 #include<bits/stdc++.h> using namespace std; struct point { double x,y; }node[10001]; double cosr(point a,point b,point c) { return (a. 阅读全文
摘要:
##利用单调栈,可以找到从左/右遍历第一个比它小/大的元素的位置. #####假设有一个单调栈S和一个数组a[5]; #####有一个记录数组L[5],序号由1-5,表示a[i]向左遍历第一个比a[i]小的数的下标; a[5]:3 5 7 4 6 当a[1]=3压入栈中,是空栈,L[1]=0; 当a 阅读全文
摘要:
##单调栈 向右寻找比自己大的第一个数 poj 3250 Bad Hair Day #include<iostream> #include<cstdio> #include<stack> #define M 80100 #define ll long long using namespace std 阅读全文
摘要:
最小生成树大家都会,但是次小生成树呢?生成树算法在计算机运用广泛啊!!!! 先来讲一下定义: 设 $G=(V,E,w)$是连通的无向图,\(T\) 是图$G$ 的一棵最小生成树。如果有另一棵树$T1$,满足不存在(找不到)树$T’$,\(W_{T’}<W_{T1}\),则称T1是图G的次小生成树。( 阅读全文
摘要:
##次短路 #####(一) 从$u$(父节点)到$v$(子节点)次短路直接更新(通常在最短路已经确定的情况下才进行直接更新次短路) 从$u$(父节点)到$v$(子节点)最短路不更新,但是距离比次短路距离小,更新次短路 从$u$(父节点)到$v$(子节点)最短路更新,原来的最短路就成了次短路 数组$ 阅读全文
摘要:
Power Tower ###题意: 一个序列有$n$个数,$q$次询问,将$l$到$r$这个区间的数叠起来模上$M$ ###思路: 欧拉降幂 #include<bits/stdc++.h> #define ll long long using namespace std; map<ll,ll>mp 阅读全文
摘要:
Caesar Cipher ####题意: 凯撒密码加密,输出对应的密文的明文 ####思路: 加密是将明文向右移位,那么解密就是将密文向左移位。 注意:A向左一位是Z #include<bits/stdc++.h> #define ll long long using namespace std; 阅读全文
摘要:
####祭祀river ####题意: 在有向无环图中找尽可能多的点使这些点任意两点都不能通过已知的边到达对方(最大反链(点集)) (区别最大点独立集) ####思路: 最大反链==最小可相交路径覆盖 #include<bits/stdc++.h> using namespace std; int 阅读全文