自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 二分图性质

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

2017-02-07 17:03:46 1147

原创 [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 172

原创 【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 207

原创 【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 270

原创 【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

原创 【BZOJ 4445】[Scoi2015]小凸想跑步 半平面交

半平面交解不等式方程组#include#include#include#include#include#define eps 1e-10#define maxn 500021using namespace std;int n,cnt,tot;double all;struct P{ double x,y; void init(){scanf("%lf%lf",&x,&y);

2017-02-23 20:35:22 410

原创 【BZOJ 1067】[SCOI2007]降雨量 线段树

裸的线段树或者rmq,反正没有修改,就是居然会有给没有出现过的年份的情况,wa了一发#include#include#include#include#define maxn 50021#define ls u<<1,l,mid#define rs u<<1|1,mid+1,r#define inf 0x3fffffffusing namespace std;int n,m,t

2017-02-23 09:56:14 280

原创 【BZOJ 1007】[HNOI2008]水平可见直线 半平面交

裸半平面交#include#include#include#include#include#define maxn 50021using namespace std;int n,ans[maxn],cnt;struct Line{ double k,b;int id; bool operator<(const Line& y)const{ return k==y.k ?

2017-02-23 08:50:03 226

原创 【BZOJ 2618】[Cqoi2006]凸多边形 半平面交

转成半平面交就好了。#include#include#include#include#include#define eps 1e-7#define maxn 100021 using namespace std;int n,tot,cnt;struct P{ double x,y; P(double a=0,double b=0):x(a),y(b){}}p[maxn]

2017-02-23 07:56:23 327

原创 【BZOJ 2820】YY的GCD 莫比乌斯反演

\begin{array}{l}\sum\limits_{ispri(p)}^{} {\sum\limits_{i = 1}^n {\sum\limits_{j = 1}^m {\gcd (i,j) = = p} } } \\ = \sum\limits_{ispri(p)}^{} {\sum\limits_{i = 1}^{\left\lfloor {\frac{n}{p}} \right\rf

2017-02-22 20:10:06 223

原创 【BZOJ 2823】[AHOI2012]信号塔 随机增量

三倍经验2823=1337=1336原来传说中的随机增量就是一个随机后乱搞,牛。。。。#include#include#include#include#include#define maxn 1000021#define eps 1e-9 using namespace std;int n;struct P{ double x,y; P(double a=0,do

2017-02-22 10:31:04 268

原创 【BZOJ 1095】[ZJOI2007]Hide 捉迷藏 动态树分治

一个很烦但是比较容易懂的算法。先考虑如果我们允许Q*nlogn的复杂度的话怎么写(即每一次的操作都是nlogn的)。考虑树分治,每一次先找到一个重心然后dfs每一个子树找到每一个子树最深的关灯,然后找到经过这个重心的最远两个点。最后开一个全局变量ans不断地更新ans就好了。但是显然不能直接这样做,不过幸运的是,我们发现每一次分治的时候其实我们找的重心都是不变的,而从每一个重心dfs下

2017-02-21 18:50:20 231

原创 【hdu 5052】

#include#include#include#define maxn 1000021#define ls(u) ch[u][0] #define rs(u) ch[u][1]#define inf 0x3fffffffusing namespace std;int T,n,m,ch[maxn][2],Max[maxn],Min[maxn],val[maxn],lz[maxn];

2017-02-20 22:21:34 228

原创 【hdu 4897】Little Devil I

#include#include#include#define ls u<<1,l,mid#define rs u<<1|1,mid+1,r#define maxn 500021using namespace std;int T,n,m;struct Tree{ int lc[maxn*4],rc[maxn*4],flag[maxn*4],sum[maxn*4]; void p

2017-02-20 20:19:11 220

原创 【BZOJ 4062】[Cerc2012]Jewel heist

#include#include#include#include#include#define maxn 200021using namespace std;int T,n,k,t[maxn],cnt,c[maxn];sets[maxn];struct node{ int x,y,c; bool operator<(const node& b)const{ return

2017-02-20 18:10:00 241

原创 【hdu 4918】Query on the subtree 动态树分治

先填上,以后来说#include#include#include#include#define maxm 4000021#define maxn 100021using namespace std;int n,m,head[maxn],tot=1,cnt,val[maxn],dep[maxn],dfn[maxn];int f[maxn],s[maxn],size,rt,vis[ma

2017-02-20 16:51:50 299

原创 【spoj】Another Longest Increasing Subsequence Problem cdq分治

没什么好说的就是写了两个版#include#include#include#include#define maxn 500021using namespace std;int n,ans[maxn],c[maxn*4],t[maxn],cnt;struct node{ int x,y,id; bool operator<(const node& b)const{return id

2017-02-18 16:58:13 198

原创 【BZOJ 4299】 Codechef FRBSUM 主席树

一个显然的性质:如果之前可以组成前mx个数,那么可以新加入一个max+1则对当前无贡献但是。。。推出这个性质后面我就没想到了。。。。其实,每当我们得到一个mx以后,因为小于等于mx+1的数都可以和mx构成一个新的mx,因此新的mx=sum[mx+1],sum表示小于等于mx+1的前缀和,而这样每一次都至少增加一倍所以最多log次,主席树维护前缀和就好了#include#include

2017-02-17 18:54:43 431

原创 【BZOJ 4520】[Cqoi2016]K远点对 kd-tree

迷之复杂度。。。。。。总感觉kd-tree的复杂度很迷,毕竟搜索嘛,可是剪枝居然这么强也是够了,所以我感觉以后遇见kd-tree的题目真的就别想什么T了,暴力出奇迹#include#include#include#include#include#define inf 0x3fffffff#define maxn 200021#define ls nod[u].l#defin

2017-02-17 15:40:39 334

原创 【BZOJ 3944】sum 杜教筛

杜教筛简洁

2017-02-17 11:38:30 240

原创 【BZOJ 3910】火车 并查集

每一次lca求距离,并查集维护是否已经经过过,每一次往上跳就好了,只不过。。。为毛我这么慢?lca倍增太慢了?#include#include#include#define maxn 500021#define LL long longusing namespace std;void read(int& x){ x=0;char c=getchar(); for(;c>'9'|

2017-02-16 21:26:06 221

原创 【BZOJ 3714】[PA2014]Kuglarz 最小生成树

解法有点。。。迷要知道每一个杯子的情况,有球为1,没有球为0,sum为前缀和,即了解每一个sum[i]-sum[i-1],显然如果我们知道了sum[k]-sum[i]和sum[j]-sum[k]那么sum[j]-sum[i]也就是已知的了,而且其中任选两个都能推出第三个,也就是说每一询问i,j我们就将i,j-1加入一个集合中,那么集合中的任意两个点都是可以通过其他点推出来的,又要求最后权值最小

2017-02-16 20:40:11 260

原创 【BZOJ 2300】 [HAOI2011]防线修建 平衡树维护凸包

离线然后把所有的操作倒过来,这样就像星球大战一样,删点变成加点,动态用平衡树维护凸包就好了。#include#include#include#include#include#define maxn 200021using namespace std;struct P{ double x,y; P(double a=0,double b=0):x(a),y(b){} bool

2017-02-16 19:33:28 295

原创 【BZOJ 2938】[Poi2000]病毒 fail树+dfs判环

反过来想就是给一个无限长的字符串,然后在fail树上永远跑不到val==1的点,failed树是一个有向图,因此只要有向图出现环就可以了,dfs维护点的信息,在栈中,已经出栈,还没有进栈判断一下就好了。#include#include#include#include#define maxn 30021using namespace std;int ch[maxn][2],fail[

2017-02-16 15:55:47 322

原创 【BZOJ 3207】花神的嘲讽计划Ⅰ 主席树e

长度给定,原串最多有n-k+1个hash值,预处理出来。对于每一次的询问就是询问一段区间是否出现这个hash值,莫队,主席树都能搞,这里我用主席树。这种判断一个串是否出现过hash是常用处理方法#include#include#include#include#define maxn 100021#define LL unsigned long longusing namespa

2017-02-16 11:40:33 231

原创 【BZOJ 1941】[Sdoi2010]Hide and Seek kd-tree

裸的kd-tree1. nod[0]初始化2. 类似于splay的建树方法,维护n个节点,每一个节点管辖一定区域#include#include#include#include#include#include#define maxn 500021#define inf 0x3fffffff#define ls(u) nod[u].l#define rs(u) nod[u]

2017-02-16 09:46:37 291

原创 【BZOJ 1112】Poi2008砖块Klo treap

把每一个的高度看做是直线上的一个点,那么问题就是求一个点到其他所有点的距离最短。可以发现,位于中位数的点到左右点的距离和最短,证明的话,很简单就不说了(试着把中位数上的点左右移动就好了)那么问题就变成求中位数了,treap就搞定了。#include#include#include#include#define LL long longusing namespace std;

2017-02-15 22:08:49 213

原创 【BZOJ 2440】[中山市选2011]完全平方数 莫比乌斯反演+容斥

考虑二分答案,所以需要的问题就是1->n以内有多少个数不是完全平方数的倍数即u[i]!=0ans=n-是完全平方数的倍数的个数即ans=n-只有一个质因数的个数+有两个质因数的个数-有三个质因数的个数。。。。。。考虑枚举完全平方数的根,然后x/(i*i)就得到在x内它的倍数有多少个,如果这个数已经是完全平方数的倍数u[i]==0对答案并没有影响,否则恰好是莫比乌斯函数#includ

2017-02-15 20:46:05 203

原创 【BZOJ 2154】Crash的数字表格 莫比乌斯反演

http://cjjlsdy.blog.163.com/blog/static/18037056320146198140985/#include#include#include#define maxn 10000021#define LL long long#define Mod 20101009llusing namespace std;bool vis[maxn];LL u

2017-02-15 17:24:54 189

原创 【BZOJ 3991】[SDOI2015]寻宝游戏 虚树

因为从一个点出发还要回来,所以就是虚树边权的两倍#include#include#include#include#define maxn 700021#define inf 0x3fffffff#define LL long longusing namespace std;int h[maxn],n,m,f[maxn][21],cnt,sz,head[maxn],tot=1,d

2017-02-15 14:29:41 191

原创 【BZOJ 2286】[Sdoi2011消耗战 虚树+dp

没什么好说的,虚树+dp#include#include#include#include#define maxn 500021#define LL long longusing namespace std;void read(int& x){ x=0;char c=getchar(); for(;c>'9'||c<'0';c=getchar()); for(;c>='0'&

2017-02-15 09:18:43 197

原创 【BZOJ 3611】[Heoi2014]大工程 虚树+树形dp

虚树的典型特征,n值特别大,但是∑k又很小,所以每一次构建虚树然后树形dp。虚树:http://blog.csdn.net/thy_asdf/article/details/50387136学习了一波还是蛮不错的东西。#include#include#include#include#define maxn 1000021#define LL long long usin

2017-02-15 08:01:48 209

原创 【BZOJ 3438】小M的作物 最大权闭合子图

有两种建图方法,这里采用最大权闭合子图首先这里基于最大权闭合子图的思想,但是题目中有两种田,而网络流中的s和t有事代表正边权和负边权,所以考虑去掉一个田,我们就假设先全部将种子种在A田然后不断地将种子向B田移。闭合图基本就是这个样子:红色是种子,点权可正可负,绿色是B田的组合方式,点权为正,棕色是A田的组合方式,点权为负1.对于每一个种子,代价为b[i]-a[i]可正可

2017-02-14 17:18:48 214

原创 【BZOJ 1497】 [NOI2006]最大获利 最大权闭合子图

用户与s连边,边权为获利,用户向需要的基站连边边权为正无穷,基站向t连边,边权为费用,最后用总获利减去最小割即可。听说这个。。。叫做最大权闭合子图什么的,其实就是最小割啦。。。#include#include#include#define maxn 1000021#define inf 0x3fffffffusing namespace std;int head[maxn],n

2017-02-14 11:40:25 186

opencv3.4.1

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

2018-09-28

空空如也

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

TA关注的人

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