技巧思路脑洞结论
veoery
这个作者很懒,什么都没留下…
展开
-
关于二分图中对最小顶点覆盖、最小边覆盖、最大独立集的总结
参考博客 http://blog.csdn.net/flynn_curry/article/details/52966283概念: 最大匹配:二分图中边集的数目最大的那个匹配; 最小顶点覆盖:选取最少的点数,使这些点和所有的边都有关联(把所有的边的覆盖),叫做最小点覆盖。 最小边覆盖:用尽量少的不相交简单路径覆盖有向无环图(DAG)G的所有顶点; 最大独立集:在一原创 2017-12-13 13:26:00 · 750 阅读 · 0 评论 -
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 · 262 阅读 · 0 评论 -
codevs 1082 一维树状数组区间修改区间查询
吃什么Sol容斥+画图理解 数组ca存的是修改区间覆盖当前点时应该加的值 数组cb存的是修改区间完全在当前点前面时对当前点的前缀和影响 当然还有其它情况 有时间的话会补图另外一种方法 利用差分数组 写法可能更简洁 数学推导的思路比直接脑补容斥原理更简单一些 比如扩展到二维的 bzoj 3132Code// by spli #include<cstring> #include<cstd原创 2017-12-06 23:35:27 · 250 阅读 · 1 评论 -
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 · 172 阅读 · 0 评论 -
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 · 163 阅读 · 0 评论