自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(341)
  • 资源 (1)
  • 收藏
  • 关注

转载 二分图性质

来源:http://endlesscount.blog.163.com/blog/static/821197872012622103810976/鸣谢博主常用定理: 最小点覆盖=最大匹配。 最小边覆盖=最大独立集=图中点的个数-最大匹配。 最小路径覆盖=原图的节点数-新图最大匹配。(详见五、六) 一、二分图最大匹配 ·定义:匹配是图中一些边的集合,且集合中任意两条边

2017-02-07 17:03:46 1147

原创 数学知识

*卡特兰数的最后一个求法用的是wiki上面的C(2*n,n)- C(2*n,n+1)虽然看似没有区别,数值都一样但是在BZOJ 3907 n-1会挂

2017-01-20 21:10:28 257

原创 萌新学习手册:surf特征检测

算法原理:https://www.cnblogs.com/jinjidexuetu/p/90ace4e8de574e3d5f4e6ac16a0dc157.html#include<opencv2/xfeatures2d.hpp>using namespace xfeatures2d; 嗯,在开头要包含这个库然后申明命名空间src = imread("C:/Users/...

2018-10-01 10:23:24 360

原创 萌新学习手册:亚像素级别角点检测

在现实应用中我们的角点往往并不是整数,所以为了提高我们寻找角点的精确程度,我们需要进行处理,一般有三种方法1.插值方法2.基于图像矩计算3.图线拟合(高斯曲面,多项式,椭圆曲面)其中高斯曲面最为常用具体的使用过程就是我们先用Shi-Tomasi角点检测 把角点找出来,然后再进行精确 cornerSubPix(InputArray image, I...

2018-09-30 18:53:49 459

原创 萌新学习手册:Shi-Tomasi角点检测

自学对象:https://blog.csdn.net/dcrmg/article/details/52551637Shi-Tomas是对Harris算法的一种改进,效率也得到了大幅的改进。首先介绍APIvoid goodFeaturesToTrack( InputArray image, OutputArray corners,...

2018-09-30 15:32:27 1107

原创 萌新学习手册:openCV中Hassi角点检测

createTrackbar(const string& trackbarname, const string& winname, int* value, int count, ...

2018-09-28 23:42:10 214

原创 【BZOJ 2400】Spoj 839 Optimal Marks 最小割

很有意思的一道题,看到网上有先跑最小割然后dfs的做法,但是还看到一个比较有趣的建图方法。首先对于题目来说,显然可以因为每一个位之间都不会相互影响所以可以按位处理,枚举每一位然后把每一个点划分为0或者1,这样一来就相当于把每一个元素划分为两个集合,并且要求代价最小,这样可以想到最小割。然后对于这一道题目要求在保证边权最小的情况下点权和最小,这就相当于要在保证第一条件最优下次要条件也最优,这

2017-03-31 09:21:00 384

原创 【BZOJ 3160】万径人踪灭 FFT+回文树

其实我就是来贴一个FFT的版,然后就是回文树记着先把儿子的信息更新好再把父亲的指针指下来%po姐专用链接#include#include#include#include#include#define maxn 400021#define Mod 1000000007using namespace std;int ans[maxn],er[maxn];struct cp

2017-03-29 15:01:42 381

原创 【BZOJ 2502】清理雪道 有下界网络流

有下界的最小流,刘汝佳的大白上其实讲的已经很清楚了先按照可行流的建图方法建图以后跑一遍,但是由于只是满足了可行并没有满足最小的要求所以我们再删除超级源和超级汇以及t->s的连边以后再倒着从t跑一遍退流即可。#include#include#include#define LL long long#define maxn 100021#define inf 0x3fffffff

2017-03-28 15:56:28 263

原创 【BZOJ 3729】Gty的游戏 splay+dfs序+阶梯NIM

其实就是几个东西搞在一起1.允许加入一个节点:splay维护dfs序即可2.每次只能向上移动不超过L个石子:对于一般的NIM游戏并没有这个限制,但是其实只要画一画就可以发现假设我们有一堆石子数为n的石子,每次最多取走L个,那么对于每一堆的sg函数的值就是n%(L+1)3.每一次只能向上移到父亲处:阶梯NIM游戏,我在之前一篇博客讲到过,只用异或上奇数的阶梯即可有了上面一些东西就可以

2017-03-28 09:03:46 291

原创 【BZOJ 4052】[Cerc2013]Magical GCD 暴力+gcd

有一个套路就是每一次加入一个数字区间的gcd肯定是不上升的,而每一次下降也会是至少下降为1/2,所以本质不同的gcd的个数并不会有太多,既然这样就可以枚举右端点然后暴力维护左端点有相同的gcd就删除l大的那一个然后就好。#include#include#include#include#define maxn 100021#define LL long longusing names

2017-03-27 11:54:14 408

原创 【BZOJ 1367】 [Baltic2004]sequence 可并堆

对于t1那么对于t1>t2>t3.....为了方便.不考虑递增,只考虑不下降,画出每一个数字的坐标(i , t[i])那么问题就是找到一条水平直线到所有点的距离和最小,先任意画一条直线,然后考虑上下移动直线是否会使答案更优,显然直线向上移动一格的代价变换是  : 在直线下方的点数- 在直线上方的点数,这样就可以证明贪心的正确性了,即在中位数的时候最优。然后就可以按值分段处理了,怎么用可并堆

2017-03-26 17:08:31 308

原创 【BZOJ 3277】串 广义后缀自动机

判断一个串是否在至少k个字符串里面的方法后3473一样,每添加一个新的字符就沿fail链更新。剩下的问题就只是剩下了,每增加一个新的字符,共多出现了多少个新的字符串,如果不要求重复,那么很显然就是len[u]-len[fail[u]],这里重复的字串也需要加入答案所以只用沿fail链dfs一下,sum[u]=fail链上所有的坏和就好了#include#include#include

2017-03-22 20:54:13 381

原创 【BZOJ 4184】shallot 线性基

一开始一直没有想到因为只是在一直思考线性上怎么做,结果这道题很巧妙的运用的是在线段树上,因为每一个数字的影响其实只是在一段区间上的,这个=很显然,然后就类似于线段树上区间修改打懒惰标记,最后全部dfs一下下放标记就好了。一开始一直脑残的开了一个全局的线性基一直mle心塞#include#include#include#include#include#include#incl

2017-03-22 12:05:46 385

原创 【BZOJ 2780】[Spoj]8093 Sevenk Love Oimaster 广义后缀自动机

广义后缀自动机其实就是简单的把所有的串都插到了一起而已。。。。每添加进一个新的字符其实影响到的字串也就是能新增加的字串就是fail链上的,每一次新加入一个字符向上更新影响就好了#include#include#include#define maxn 200021using namespace std;int n,last=1,m,tot=1,rt=1,son[maxn][26],le

2017-03-21 21:54:43 264

原创 【BZOJ 2882】工艺 最小表示法

YY了一个树状数组的写法,肯定可以做,但是最小表示法方便多了,而且复杂度还是O(n)的。而且正确性很显然#include#include#include#define maxn 300021using namespace std;int n,s[maxn];int main(){ scanf("%d",&n); for(int i=1;i<=n;i++)scanf("%d",

2017-03-20 20:12:39 408

原创 【BZOJ 1115】[POI2009]石子游戏Kam 阶梯nim游戏

阶梯nim游戏:在阶梯上每一个阶梯上都是有石子,每一个人轮流选择一个阶梯将上面的任意个石子推向下一级阶梯。解法:只考虑奇数阶梯上面的石子,每一次将奇数上面的石子推向偶数级阶梯,就相当于在奇数级阶梯上取走任意个石子,询问是否有必胜状态就相当于只在奇数阶梯上做nim游戏。而至于偶数上面的石子可以这么考虑,如果对手将一些偶数上面的石子推到了奇数上面来,这一轮自己同样可以将那些被推到奇数级上的阶梯

2017-03-20 16:41:22 329

原创 【BZOJ 2084 [Poi2010]Antisymmetry 回文树

回文树写法#include#include#include#define LL long long#define maxn 500021using namespace std;int n,len[maxn],fail[maxn],ch[maxn][26];int N,cnt[maxn],s[maxn],last,p;char ss[maxn];LL ans;int get(

2017-03-20 09:17:00 399

原创 【BZOJ 3790】神奇项链 回文树+贪心

找出以每一个点作为尾端的最长区间然后就变成了一道很简单的区间完全覆盖问题,倒过来直接上贪心就好了,至于如何找最长区间需要用到回文树#include#include#include#include#define maxn 50021using namespace std;int n,p,ch[maxn][26],fail[maxn],len[maxn],N,s[maxn];int

2017-03-20 07:58:37 262

原创 【BZOJ 2160】拉拉队排练 回文树

建立回文树以后直接sort以后暴力跑就好了,不会有问题的。#include#include#include#include#define Mod 19930726ll#define maxn 1000021#define LL long long using namespace std;int n,cnt[maxn],s[maxn],fail[maxn],ch[maxn][

2017-03-19 20:57:30 378

原创 【BZOJ 3676】 [Apio2014]回文串 回文树

回文树裸题拿来练板#include#include#include#define maxn 300021#define LL long longusing namespace std;int n,p,last,fail[maxn],ch[maxn][26],len[maxn],cnt[maxn];int s[maxn],N;char ss[maxn];int get(

2017-03-19 20:07:06 267

原创 【BZOJ 3230】相似子串 后缀数组

出题人在下面写题解系列本质不同的字串个数=∑n-h[i]-sa[i]然后一个一个套就好了#include#include#include#define maxn 200021#define LL long longusing namespace std;struct SA{ int n,sa[maxn],rk[maxn],f[maxn*2][18],t1[maxn],t2

2017-03-19 16:45:04 324

原创 [BZOJ 3631][JLOI2014]松鼠的新家 dfs

维护懒惰标记就好了.#include#include#include#define maxn 300021using namespace std;int n,a[maxn],head[maxn],tot=1,val[maxn];int f[maxn][21],h[maxn],lz1[maxn],ans[maxn],lz2[maxn];struct edge{int v,next;

2017-03-04 11:10:02 189

原创 [BZOJ 2216][Poi2011]Lightning Conductor 单调性dp

利用单调性dp#include#include#include#include#include#define maxn 500021using namespace std;int n,a[maxn];double f[2][maxn];struct node{ int x,l,r; node(int a=0,int b=0,int c=0):x(a),l(b),r(c){

2017-03-04 10:06:29 200

原创 [BZOJ 3994][SDOI 2015]约数个数 数学+反演

∑i=1n∑j=1m⌊ni⌋∗⌊mj⌋,gcd(i,j)=1{\sum\limits_{i=1}^{n}} {\sum\limits_{j=1}^{m}} {\lfloor {{n} \over {i} }\rfloor} * {\lfloor {{m} \over {j}} \rfloor} ,gcd( i,j) =1 主要就是这个公式吧,其他的都是很好写的莫比乌斯反演,一股脑的推就好了

2017-03-03 17:05:30 254

原创 [BZOJ 3720]Gty的妹子树 树上分块

类似于序列上面的分块,给每一个树设置一个大小上限,不够就继续加,够了就新建一个块.友情提示:把块写成一个结构体打包起来,然后数组开大一点,血的教训#include#include#include#include#include#define maxn 100210using namespace std;struct blo{ int a[251],size; int kt

2017-03-03 10:02:21 306

原创 [BZOJ 2956]模积和 分块+数学

一开始忘记了平方数列求和,郁闷: sum[n]=n*(n+1)*(2*n+1)/6 其实打一个表是看得出规律的,但是要进行运算我们还是得把他变成数学公式才可以啊: 对于取模运算:n%i=n−⌊ni⌋∗in\% i= {n-\lfloor {{n} \over {i}}\rfloor} *i 化简以后就是喜闻乐见地 分块了 #include<cstdio>#include<iostre

2017-03-02 16:40:18 329

原创 [BZOJ 4571][scoi2016]美味 主席树

从高到低按位贪心,对于原来的数列建立权值主席树,每一次贪心的算出区间范围然后主席树查询有没有这个区间有没有这个值,然后就没有了#include#include#include#define maxn 200021using namespace std;int read(){ char c=getchar();int x=0; for(;c>'9'||c<'0';c=getchar

2017-03-02 09:53:24 347

原创 [BZOJ 2741]【FOTILE模拟赛】L 分块+可持久trie树

首先很显然维护异或前缀和让询问区间连续一段变成询问两个单点.然后就比较套路了,发现每一次都是询问一个区间内而且不满足我们已知知识内的一些特殊性质例如单调性,但是暴力又可以很容易的做出来,所以这个时候就可以考虑分块了设f[i][j] 表示第i块开始到j的最大异或值,然后就很简单了#include#include#include#include#define LL long long

2017-03-01 16:20:39 304

原创 [BZOJ 3772]精神污染 主席树+dfs序

这题目描述是真...精神污染..比较有趣的一道题目,首先显然ans=所有两两之间有包含关系的路径/所有的方案数那么,现在问题就变成了如何快速的找到有包含关系的路径.假设现在有路径A以及路径B,切A包含于B,那么显然A的两个端点都在B这条路径上,也就是说我们只需要找到所有起点和终点都在B路径上面的路径.这里由于路径很难维护,所有就维护当前节点到根节点的信息.主席树维护dfs序(每

2017-03-01 11:09:21 241

原创 [BZOJ 2055]80人环游世界 有上下界网络流

由于每一个节点都具体规定了人数,所以上下界一样,然后就像可行流一样建图后跑最小费用最大流就好了.#include#include#include#include#define inf 0x3fffffff#define maxn 205#define maxm 500021using namespace std;int head[maxn],n,m,in[maxn],tot,a

2017-02-28 09:39:57 259

原创 【BZOJ 3439】Kpm的MC密码 主席树+trie树

所有的串都倒着插然后后缀变前缀,然后用主席树维护dfs序查询子树第k大就好了,唯一就是注意一下肯呢过有重复的串#include#include#include#include#define maxn 100021using namespace std;vectorg[maxn*20];int ch[maxn*20][26],in[maxn],out[maxn],tot,cnt

2017-02-27 10:11:18 171

原创 【BZOJ 3439】Kpm的MC密码 主席树+trie树

所有的串都倒着插然后后缀变前缀,然后用主席树维护dfs序查询子树第k大就好了,唯一就是注意一下肯呢过有重复的串#include#include#include#include#define maxn 100021using namespace std;vectorg[maxn*20];int ch[maxn*20][26],in[maxn],out[maxn],tot,cnt,c

2017-02-27 08:10:55 234

原创 【BZOJ 2756】[SCOI2012]奇怪的游戏 网络流+二分

很有趣的做法。首先,题目要求每一次的加数都必须加相邻的两个格子,这样我们将棋盘黑白染色就能很显然的发现每一次的加数都是将一个黑格子和一个白格子加一。继续分析:设黑格子的个数为c1,和为s1,白格子的个数为c2,和为s2,设最后棋盘所有数字为xx*c1-s1=x*c2-s2x=(s1-s2)/(c1-c2)1.c1!=c2直接网络流判断2.c1!=c2显然如果棋盘现在所有数为

2017-02-26 17:18:14 205

原创 【BZOJ 1977】[BeiJing2010组队]次小生成树 Tree

思想简单,写起来恶心,还好1A了(逃,多考虑一下就好了#include#include#include#include#include#define LL long long #define maxn 300021using namespace std;vectorg[maxn];vectorw[maxn];int n,m,f[maxn][20],Max1[maxn][30

2017-02-25 16:31:47 206

原创 【BZOJ 3791】作业 dp

有点意思的dp。需要明确的就是把每一次的染色当做划定区间,最后只会最多有2*k-1个区间,就。。。。可以dp了设f[i][j][p]为分成i段,前j位最后一个数字为p的最优值两种策略:1.涂色 f[i][j][p]=max(f[i][j][p],f[i-1][j-1][p^1]+(a[j]==p))2.不动 f[i][j][p]=max(f[i][j][p],f[i][j-1]

2017-02-25 12:03:45 269

原创 【BZOJ 2178】圆的面积并 自适应辛普森公式

∫rlf(x)=(r−l)(f(l)+f(r)+4f(mid))6\int_l^r {f(x) = \frac{{(r - l)(f(l) + f(r) + 4f(mid))}}{6}} f(i)是x=i这一条直线经过的被圆覆盖的长度,然后递归求解,如果发现误差小于1e-13就直接返回好了`#includeincludeincludeincludeincludedefine eps 1e-13d

2017-02-25 10:18:17 528 1

原创 【BZOJ 2705】[SDOI2012]Longge的问题 欧拉函数

水水的数学题枚举gcd所以ans=∑d*∑gcd(i,n)==d=∑d*∑gcd(i/d,n/d)==1第二个求个可以显然发现就是欧拉函数,问题解决可是。。。由于最近写数学题全部都是O(n)用积性函数性质来筛欧拉函数。。。结果想了半天没法筛啊,数据范围那么大,结果。。。。只用每一次根号n的复杂度暴力求就好了脑残。#include#include#include#inc

2017-02-24 22:11:10 206

原创 【BZOJ 4103】[Thu Summer Camp 2015]异或运算 可持久化trie树

矩阵什么的不用管,就是a给一个区间,b给一个区间两两异或第k大,发现b很大a很小,就给b建一个可持久化trie树,顺便记下size以便于查询第k大。对于每一次的询问,外层枚举位数,内层枚举A的每一个数,用结构体存下每一个A中的数对应的B的可持久化trie树的当前节点,然后分别就像查询一个数一样树上二分就好了。#include#include#include#define maxm 3

2017-02-24 21:16:14 184

原创 【BZOJ 3594】[Scoi2014]方伯伯的玉米田 树状数组

显然,要拔i,那么拔i->n一起一定不会更差(后面的相对高度不变,但是比前面的高度高的可能性更大),所以,就变得水水的了。设f[i][j]为高度为i,被拔过j次的最长不下降子序列,然后用二维数组维护 就可以了。值得一提的是,不要把拔0次,即不拔的情况考虑掉了,我还因此wa了几发。。。郁闷#include#include#includeusing namespace std;in

2017-02-24 10:49:49 223

opencv3.4.1

虽然opencv可以直接在官网上下载,但是很坑的是opencv3居然不能直接用surf特征检测,之前需要一系列的准本工作,所以分享了这个压缩包可以直接使用

2018-09-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除