- 博客(8)
- 收藏
- 关注
原创 HNOI2015 开店
题目大意:给出一棵边带权的树(每个点的度小于等于3),每个点都带有一个年龄值v,强制在线询问年龄值在[l,r]区间内的所有点到指定点u的距离和。 这道题有两种做法,两种做法都比较有代表性。 第一种是树链剖分加可持久化线段树,我们先考虑简化问题,假设我们忽略年龄值,而只是在线询问所有点到一个点的距离和呢?转换一下,设dep(u)代表u节点到根的距离和,那么答案就等
2017-02-15 19:11:01
516
原创 BZOJ 3207 花神的嘲讽计划Ⅰ
题目大意,给出一个长度为n的数字串,一个常数k,然后是m个询问:从l到r位置,能不能找到一个长度为k的指定数字串。思路:字符串hash之后,使用可持久化权值线段树查找就ok,字符串hash还是第一次写,即指定一个key,key应该尽量大,代表key进制的数,那么对于一个指定的字符串,我们从左到右进行取数字,将其表示成一个key进制的数,存储下每一位的结果,即sum[i]=sum[i-1]*ke
2017-01-07 20:47:34
308
原创 BZOJ3685 普通van Emde Boas树
题目:设计数据结构支持:1 x 若x不存在,插入x2 x 若x存在,删除x3 输出当前最小值,若不存在输出-14 输出当前最大值,若不存在输出-15 x 输出x的前驱,若不存在输出-16 x 输出x的后继,若不存在输出-17 x 若x存在,输出1,否则输出-1其中数的范围看着算导写了个veb模板,最后超时在建树上,附上veb代码仅供
2017-01-07 19:09:57
413
原创 BZOJ 2588 Count on a tree 可持久化线段树+LCA
题目大意:给出一棵n(n 一开始写的是DFS序加树状数组套权值线段树,即对于一条路径,其包含的权值所组成的权值线段树等价于u到root的权值线段树,加上v到root,减去LCA(u,v)到root,减去fa[LCA(u,v)]到root的权值线段树,那么对于一个点来说,其到根节点上的权值组成的权值线段树只受其祖先的影响,所以我们只需要在求出DFS序之后,对于一个点,其左括号位置权值线
2017-01-07 18:40:29
360
原创 技巧与错误(4)
14.错误 昨天模拟考,在提交的前一分钟发现自己的并查集忘了写路径压缩了,顿时一身冷汗……引以为戒!15.错误 模拟考第二题,DP的时候发现数组的开反了,f[205][205][405]开成了f[205][405][205];在写以自己优化他人的DP的时候因为不习惯,和以前自己被他人优化的DP的下标搞混了;看题目样例的时候其概率输入的都是整数,就以为都是整数,忘了看题目的
2016-11-02 08:06:23
541
原创 技巧与错误(3)
11.技巧 DP 背包 (1)01背包的基本思路,一个并不太高明的方程,当然就是用f[i][j]表示前i个物品装入容量为j的背包当中所能够获得的最大的价值,其状态转移为f[i][j]=max(f[i-1][j],f[i-1][j-w[i]]+w[i]),这样做的局限性就是在处理价值都为正数的物品的问题当中,浪费了空间。另外一种方式就是从大到小循环容量,即使用f[i]表示容量为i的背包所能
2016-10-31 22:32:15
377
原创 技巧与错误(2)
7.技巧 数论 (1)基础知识,求两个数的最大公因数,一般使用经典的欧几里得算法,即用gcd(a,b)表示a,b的最大公因数,显然,当b==0时,返回a,否则返回gcd(b,a%b),也就是说gcd(a,b)==gcd(b,a%b),证明如下,为了证明两个数相等,由于两个数都是非负整数,所以我们只需要证明两个数能够互相整除就可以了: 对于gcd(a,b)=c,因为c|a,且c|
2016-10-31 16:53:52
459
原创 技巧与错误
1. 错误: 10.30,模拟考试第二题,对于题目中可走的边的定义:u-v可走当且仅当存在一条从v出发的路其路程小于从u出发的到终点的所有的路,题目要求求满足这样的条件的路(起点,终点固定)的方案数,理解成了求最短路的条数,惨死……2.错误: 10.30,模拟考试第三题,在判断列上面是否已经不满足条件的时候,在当前列上的最后一堆数的判断过程中,下意识地把程序代入到自己设想中
2016-10-30 20:01:59
409
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人