自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

veoery的博客

听说省二有金牌buff #滑稽

  • 博客(14)
  • 收藏
  • 关注

原创 bzoj 2049 [Sdoi2008]Cave 洞穴勘测

吃什么Sol预备姿势:如果把一棵树换根,那么fa[]变化的只有preroot->nowroot 这条链上的点每次操作之前,都把u转到根,更新u->preroot的节点的fa[]即可Link(u,v):令fa[u]=v;cut(u,v):令f[v]=0;query(u,v):暴力查找可能按秩合并会更快一点Code#include <cstdio>using namespace std;#def

2017-12-17 00:52:19 156

原创 关于二分图中对最小顶点覆盖、最小边覆盖、最大独立集的总结

参考博客 http://blog.csdn.net/flynn_curry/article/details/52966283概念: 最大匹配:二分图中边集的数目最大的那个匹配; 最小顶点覆盖:选取最少的点数,使这些点和所有的边都有关联(把所有的边的覆盖),叫做最小点覆盖。 最小边覆盖:用尽量少的不相交简单路径覆盖有向无环图(DAG)G的所有顶点; 最大独立集:在一

2017-12-13 13:26:00 735

原创 最小路径覆盖问题

吃什么Sol先说结论: 二分图定理之一:最小路径覆盖数=顶点数-最大匹配 将一个点拆拆成两个点 如果x->y有一条边: add(x,y′,1)add(x,y',1) 对于所有的点 :add(S,i,1)add(S,i,1),add(i′,T,1)add(i',T,1)以下是证明为什么可以转化成二分图及有什么好处 因为是“路径”,所有不能有“分叉”,或者说每个点的入度+出度<=2

2017-12-13 13:16:42 230

原创 洛谷 P1251 餐巾计划问题

吃什么Sol先说建图: 经典构图题。将每一天拆成两个点i,i′i, i’,加如下6条边: (s,i,ri,p)(s, i, ri, p)——在第ii天可以买至多riri个餐巾,每块pp分; (i,t,ri,0)(i, t, ri, 0)——第ii天要用riri块餐巾; (s,i′,ri,0)(s, i’, ri, 0)——第ii天用剩的riri块旧餐巾; (i′,i+m,∞,f)(i’,

2017-12-11 19:14:37 223

原创 bzoj 1030 [JSOI2007]文本生成器

吃什么SolAC自动机+DP 考虑到可读文本的情况很复杂 于是用 所有情况-不包含可读文本的情况 先将使用者了解的单词建立AC自动机 vis表示当前节点或其fail指向的点是否是某个可读串的末尾,这样的节点不能经过 f[i][j]f[i][j]表示统计完长度为i的字符串,此时位于AC自动机的节点j的方案数 如果可以走,累计答案 具体看代码吧Code// by spli#include

2017-12-08 16:46:52 135

原创 bzoj 3196 Tyvj 1730 二逼平衡树(主席树)

吃什么Sol写法同动态第k大 查询前驱后继有一些细节注意Code// by spli#include<cstring>#include<cstdio>#include<algorithm>#include<iostream>#define LL long longusing namespace std;const int N=50010;int n,m,r[N<<1],sz;LL

2017-12-08 12:24:51 233

原创 bzoj 2733 [HNOI2012]永无乡

传送门Sol一眼看上去是水题,没想到跪了一上午。。。看到第k小想到平衡树,维护连通性用并查集。因此主要思路就是维护一个平衡树森林,合并操作就把两个平衡树合并难点在于,合并暴力肯定TLE,因此需要启发式合并void dfs(int p,int &f){ if(lc) dfs(lc,f); if(rc) dfs(rc,f); int x,y; split(f,va

2017-12-08 01:02:24 148

原创 bzoj 3224 Tyvj 1728 普通平衡树 (替罪羊树模板)

想吃什么Sol正常的二叉搜索树+暴力重构 lc,rc分别表示i的左右子树 对以i为根的子树重构当且仅当siz[lc]>siz[p]∗alphasiz[lc]>siz[p]*alpha 或者siz[rc]>siz[p]∗alphasiz[rc]>siz[p]*alpha alpha(∈[0.5,1])alpha(∈[0.5,1])是自己设定的一个参数,规定了这棵树的平衡程度 当alpha=

2017-12-08 00:43:32 229

原创 bzoj 1212 [HNOI2004]L语言

吃什么SolTrie+(假的)DP 先把字典中的串加到Trie上 f[i]=1f[i]=1表示这个串的第i位可以被理解 当f[i]==1f[i]==1时继续在Trie上匹配下一位(f[i]==0f[i]==0时不能break)Code// by spli#include<cstring>#include<algorithm>#include<iostream>#include<cstd

2017-12-07 15:09:19 231

原创 codevs 1082 一维树状数组区间修改区间查询

吃什么Sol容斥+画图理解 数组ca存的是修改区间覆盖当前点时应该加的值 数组cb存的是修改区间完全在当前点前面时对当前点的前缀和影响 当然还有其它情况 有时间的话会补图另外一种方法 利用差分数组 写法可能更简洁 数学推导的思路比直接脑补容斥原理更简单一些 比如扩展到二维的 bzoj 3132Code// by spli#include<cstring>#include<cstd

2017-12-06 23:35:27 229 1

原创 bzoj 3132 上帝造题的七分钟(二维树状数组区间修改区间查询模板)

吃什么Sol 对每个点(i,j)(i,j)的操作都是覆盖了(i,j)(i,j)~(n,m)(n,m)的所有点的 Ai,jA_{i,j}表示(i,j)(i,j)~(n,m)(n,m)加的值 如果要求(1,1)(1,1)~(x,y)(x,y) 数学表达式如上图所示 因此需要维护Ai,jA_{i,j},Ai,j∗iA_{i,j}*i,Ai,j∗jA_{i,j}*j,Ai,j∗i∗jA_{i,j}

2017-12-06 23:19:03 239

原创 AC_automaton 模板

模板

2017-12-05 19:15:17 180

原创 ======数据结构======

Contents线段树树状数组平衡树主席数分块莫队

2017-12-02 22:57:12 192

原创 bzoj 3052 [wc2013]糖果公园

莫队,树上莫队,待修改莫队,树上带修改莫队,足够厚的脸皮卡评测

2017-12-02 22:53:28 287

空空如也

空空如也

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

TA关注的人

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