上一页 1 2 3 4 5 6 ··· 25 下一页

bzoj 3083 树链剖分

摘要: 首先我们先将树提出一个根变成有根树,那么我们可以通过树链剖分来实现对于子树的最小值求解,那么按照当前的根和询问的点的相对位置关系我们可以将询问变成某个子树和或者除去某颗子树之后其余的和,前者直接询问区间,后者询问区间的补集。/***********************************... 阅读全文
posted @ 2014-05-07 11:44 BLADEVIL 阅读(504) 评论(0) 推荐(0) 编辑

bzoj 1143 二分图最大独立集

摘要: 我们可以将一个点拆成两个点x,y,那么如果存在一条i->j的路径,我们就连接xi,yj,那么答案就是n-最大匹配数。 因为i->j所以对于i与j只能选一个,那么我们只需要求出来二分图的最大独立集就可以了,二分图的最大独立集=点数-最大匹配。/**************************... 阅读全文
posted @ 2014-05-07 09:12 BLADEVIL 阅读(589) 评论(0) 推荐(0) 编辑

bzoj 2303 并查集

摘要: 首先如果没有限制的话,我们可以直接求出答案,假设对于n*m的矩阵,我们最上方一行和左方的一列随意确定,那么首先这写确定的状态肯定是不会不合法的,因为我们可以调整剩下的01状态来使得这一行一列的状态合法,而且剩下的01状态唯一确定,我们叫最上面的行和左面的列为标准行列,那么我们对于每一种不同的标准... 阅读全文
posted @ 2014-04-24 20:02 BLADEVIL 阅读(560) 评论(0) 推荐(0) 编辑

可持久化数据结构讲解

摘要: 可持久数据结构主要指的是我们可以查询历史版本的情况并支持插入,利用使用之前历史版本的数据结构来减少对空间的消耗(能够对历史进行修改的是函数式)。 在这里只讲下比较常用的可持久化线段树和trie。 对于线段树我们记录每个节点的左右儿子,如果空间允许的话我们也可以记录每个数代表的区间,对于打标签... 阅读全文
posted @ 2014-04-22 19:33 BLADEVIL 阅读(6125) 评论(0) 推荐(0) 编辑

bzoj 1072 状压DP

摘要: 我们用w[i][j]来表示,i是一个二进制表示我们选取了s中的某些位,j表示这些位%d为j,w[i][j]则表示这样情况下的方案数,那么我们可以得到转移.w[i|(1#include using namespace std; int d,cnt[11],w[3010][1010];char s... 阅读全文
posted @ 2014-04-22 09:46 BLADEVIL 阅读(425) 评论(0) 推荐(0) 编辑

bzoj 2741 可持久化trie

摘要: 首先我们设si为前i个数的xor和,那么对于询问区间[i,j]的xor和,就相当于si-1^sj,那么对于这道题的询问我们可以处理处si,然后对于询问[l,r],可以表示为在区间[l-1,r]里找两个数使得这两个数的xor值最大,对于区间中找一个数使得xor一个已知数的值最大我们可以用可持久化t... 阅读全文
posted @ 2014-04-22 07:30 BLADEVIL 阅读(1210) 评论(0) 推荐(1) 编辑

bzoj 3123 可持久化线段树启发式合并

摘要: 首先没有连边的操作的时候,我们可以用可持久化线段树来维护这棵树的信息,建立权值可持久化线段树,那么每个点继承父节点的线段树,当询问为x,y的时候我们可以询问rot[x]+rot[y]-rot[lca(x,y)]-rot[lca(x,y)->father]这棵树来得知这个链的信息。 那么对于连边... 阅读全文
posted @ 2014-04-21 12:56 BLADEVIL 阅读(837) 评论(0) 推荐(0) 编辑

bzoj 1934最小割

摘要: 比较显然的最小割的题,增加节点source,sink,对于所有选1的人我们可以(source,i,1),选0的人我们可以(i,sink,1),然后对于好朋友我们可以连接(i,j,1)(j,i,1),然后我们求最小割就好了,因为我们可以将节点分为两部分,表示0,1的选法,那么我们割一条与sink,... 阅读全文
posted @ 2014-04-21 09:41 BLADEVIL 阅读(466) 评论(0) 推荐(0) 编辑

bzoj 3522 tree-dp 暴力

摘要: 首先我们知道,这个题可以N^2的做,我们先确定一个根,然后讨论下情况,合法的三个点只可能有三种情况,第一种是三个点有相同的lca,这种情况我们可以用tree-dp来解决,用dis[i][j]表示i为根的子树中距离i为j的点的数量,然后我们枚举儿子,处理出dis_[i][j]表示i子树中选两个点距... 阅读全文
posted @ 2014-04-18 21:38 BLADEVIL 阅读(480) 评论(0) 推荐(1) 编辑

bzoj 2653 二分答案+可持久化线段树

摘要: 首先离散化,然后我们知道如果对于一个询问的区间[l1,r1],[l2,r2],我们二分到一个答案x,将[l1,r2]区间中的元素大于等于x的设为1,其余的设为-1,那么如果[l1,r1]的最大右区间和加上[r1,l2]的区间和加上[l2,r2]的最大左区间和大于等于0,那么最大的中位数一定大于等... 阅读全文
posted @ 2014-04-18 14:09 BLADEVIL 阅读(542) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 25 下一页