摘要: 设d[x]表示x到根的距离 size[x]表示x的子树大小(不含自己)求出dfs序后按dfs序建主席树,线段树中区间[a,b]表示深度在[a,b]范围内的size[]的和查询x,y的答案=size[x]*min(d[x],y)+dfs序在st[x]+1到en[x]之间且深度在d[x]+1到d[x]+... 阅读全文
posted @ 2014-07-28 15:34 Claris 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 求环套外向树上节点数不小于K的路径数。首先树的话直接点分治+树状数组$O(n\log^2n)$搞定环套树的话,先删掉多余的边(a,b)然后变成了一棵树,直接点分治然后在树上找到a到b的路径,将每一棵子树中的点的“所有权”(要么从a出发到达,要么从b出发到达)改变一下,然后计算贡献即可。总时间复杂度$... 阅读全文
posted @ 2014-07-23 16:50 Claris 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 设delta表示翻转后的增量,flip表示是否翻转,第x个位置对应原来位置为(flip?n+2-x+delta:x-delta)%n再根据x,y的大小关系以及flip的是否讨论出现在作用的区间用线段树维护最左端最右端的颜色和块数这种神级码农题我居然一遍AC…#include#define N 500... 阅读全文
posted @ 2014-07-16 16:33 Claris 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 若一条边的v小于等于u,则贡献为l*w/v,否则贡献为l*w/u将边按v从小到大排序,将询问按u从小到大排序用树链剖分维护链上和,val[0]表示第一种情况下的贡献,val[1]表示第二种情况下的贡献一开始val[0]都是0,val[1]=l*w,然后每到一个询问(s,t,u),就把所有v小于等于u... 阅读全文
posted @ 2014-07-11 19:39 Claris 阅读(387) 评论(0) 推荐(0) 编辑
摘要: rank[i]表示第i美味的是哪块left[i]表示在k左边美味度为i的是哪块right[i]表示在k右边美味度为i的是哪块用3棵线段树分别维护d序列的区间最大值、left序列的区间最大值、right序列的区间最小值修改:把第x块改成第y美味把第y+1到第9美味的全部后移一位然后把第x块美味度改成最... 阅读全文
posted @ 2014-07-11 15:51 Claris 阅读(420) 评论(0) 推荐(0) 编辑
摘要: 求[l,r]内所有点与z的lca的深度之和= 求z所有祖先子树中在[l,r]内的点的个数之和由于数据不是随机的,所以祖先个数可能很大。按编号分成$\sqrt{n}$块设ans[i][j]表示第i块内所有点与j的lca的深度之和计算ans[i][]时,把在[l,r]内所有点的cnt设为1,其它的设为0... 阅读全文
posted @ 2014-07-09 20:45 Claris 阅读(436) 评论(0) 推荐(0) 编辑
摘要: 以下是一只蒟蒻的回忆:1.进入高一小县城不重视OI,直到进了高中才知道有OI这个东西,于是我就开始了OI…(看,够弱的吧,相信你是小学就开始学了)学了几天Pascal语法后,被老师报上了NOIP2012,(捂脸),才学几天怎么去考试啊…2.NOIP2012初赛第一次出去比赛,因为才学几天,考试当然... 阅读全文
posted @ 2014-05-30 17:41 Claris 阅读(5170) 评论(1) 推荐(13) 编辑
摘要: “我这双眼就是被神题亮瞎的。”T1 2048,由于我从来都没有玩出过512以上的东西,外加SDOI提答题的影响,所以弃疗了。T2 SG,一看数据规模,最小也有10^9,这是诚心不给部分分,诚心不想要区分度了是吧?事实证明此题区分度确实低。打表找了1h规律无果后只好写了个K=1的Nim弃疗。T3 感... 阅读全文
posted @ 2014-05-25 16:52 Claris 阅读(1123) 评论(0) 推荐(3) 编辑
摘要: 求出前缀和对于每个结尾i,设现在取的区间是[j+1,i],则i-R#include#include#define N 500010#define M 10000000using namespace std;int n,i,j,K,L,R,sum[N],b[N],l[M],r[M],val[M],ro... 阅读全文
posted @ 2014-05-20 14:50 Claris 阅读(434) 评论(0) 推荐(0) 编辑
摘要: 假设S在T左边,那么只能往右或者上下走f[i]表示S到i点的最短路f[i]=min(f[j]+dis(i,j)(i能看到j))判断i能看到j就维护一个上凸壳和一个下凸壳时间复杂度$O(n^2)$代码写的有点长…#include#include#include#define N 2010using n... 阅读全文
posted @ 2014-05-19 18:54 Claris 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 由于n很大,有2e8,所以不能直接用splay来维护排名把splay修改一下每个节点维护一个区间[l,r],表示编号在[l,r]之间的所有点都在这里需要支持一个takeout操作:把编号为k的玩家分离出来,成为一个独立的点先找到它所在的大点xsplay(x)然后分裂成1-3个节点关于如何查找编号为k... 阅读全文
posted @ 2014-05-18 23:20 Claris 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 对于既要支持子树修改又要支持链查询,需要树链剖分然后求出DFS序,DFS的时候先DFS重儿子,然后子树是1个区间,链是$O(\log n)$个区间这道题对于查询若干条链的并:由于K#include#define N 200010#define K 17using namespace std;int ... 阅读全文
posted @ 2014-05-16 14:08 Claris 阅读(609) 评论(0) 推荐(0) 编辑
摘要: 关于如何判断一个集合是否出现过:给每个元素随机一个hash权值,然后xor起来即可插入删除都只需xor线段树维护区间有效人数和,以及打标记表示这个区间的集合要全部标记为出现过,并把区间内sum值都置0写hash用了map被虐了TAT#include#include#define N 100010#d... 阅读全文
posted @ 2014-05-15 08:01 Claris 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 题目是要求最小乘积最小权匹配,将一种方案看做一个二维点(x,y),x=a值的和,y=b值的和,所有方案中只有在下凸壳上的点才有可能成为最优解首先要求出两端的方案l,r两个点l就是a值的和最小的方案,r就是b值的和最小的方案然后递归work(l,r)即可得出所有在下凸壳上的点work(l,r){ 找到... 阅读全文
posted @ 2014-05-14 19:35 Claris 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 终于还有一周就是ZJOI Day2了不知不觉中半年过去了呢去年我还是一个无知的弱逼,学完语法后学了半年基础,又做了半年基础题终于在NOIP上的惨败让我发现自己是有多弱逼于是只好硬着头皮去刷BZOJ并立下Flag:高二剩下半年各种比赛能去的一定要去打一把“太弱了怎么打比赛”只能没日没夜地刷题,学习为... 阅读全文
posted @ 2014-05-14 08:07 Claris 阅读(741) 评论(0) 推荐(3) 编辑
摘要: 很明显网络流。S到每个发射站连边,容量为该站限制每个接收站到T连边,容量为该站限制矩阵每个点拆成两个点i和i',i向i'连边,容量为该位置手机数每个发射站向该正方形内所有点i连边,容量为无穷大每个接收站向该正方形内所有点i'连边,容量为无穷大求最大流即可。但是这样的话,TLE+MLE(内存限制只有3... 阅读全文
posted @ 2014-05-13 14:39 Claris 阅读(516) 评论(0) 推荐(0) 编辑
摘要: 终于补完NOI2012了好开心~题目大意:给定一棵树或者环套外向树,求出从中随机选一条简单路径的期望长度,环上点数不超过20。设d[x]表示x的度数,ch[x]表示x孩子个数up[x]表示x向上走的期望长度,down[x]表示x向下走的期望长度f[x]表示x的父亲树的情况:环套外向树的情况:先找出环... 阅读全文
posted @ 2014-05-13 11:01 Claris 阅读(669) 评论(0) 推荐(0) 编辑
摘要: Top Tree模板题,写起来真不是一般的蛋疼,调了两天。常数写渣了TATTop Tree就是在LCT的基础上加以改动,将虚边也用splay维护,对于A向儿子所连出去的虚边,用Splay维护↓为了保证所有虚儿子不存在父子关系,需要让它们都是叶子节点,所以需要引入白色的内部点来维持这个结构。就能支持子... 阅读全文
posted @ 2014-05-12 18:53 Claris 阅读(3416) 评论(1) 推荐(3) 编辑
摘要: 考虑两个质量均为m,速度分别v1、v2的小球发生完全弹性碰撞的影响:由动能守恒得:$\frac{1}{2}mv_1^2+\frac{1}{2}mv_2^2=\frac{1}{2}mv_1'^2+\frac{1}{2}mv_2'^2$$v_1^2+v_2^2=v_1'^2+v_2'^2$由动量守恒得:... 阅读全文
posted @ 2014-05-10 08:46 Claris 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 想法题,由于K是加密的,但是通过读入我们可以自己数出来这一行有几个数,所以可以直接反解出之前回答为连通的个数至于最后一个询问就用并查集暴力回答var n,i,m,s,k,j,q : longint; u,v,cnt,f : array[0..500000] of longint; c : ar... 阅读全文
posted @ 2014-05-10 07:12 Claris 阅读(353) 评论(0) 推荐(0) 编辑