摘要: 题解: 长度定为3 线段树维护区间hash值 从左向右处理,依次在数轴上插入处理的元素; 如果当前数轴不对称,则缺失的那个元素一定在后面出现 阅读全文
posted @ 2018-02-20 18:06 ws_zzy 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 题解:树链剖分一下 对线段树每个节点维护双堆,支持插入删除 对于每一条请求,给这个请求没经过的点加入这个值,共logn个区间 查询就是线段树上的单点查询 阅读全文
posted @ 2018-02-20 18:03 ws_zzy 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题解: 解法1: 树链剖分一下,对每条链建立一颗Splay 以宗教为第一关键字,深度为第二关键字建立 查询相当于Splay的一个区间 修改相当于删除一个节点,加入一个节点 O(nlog^2n) O(n); 解法2: 树链剖分一下,对每条链建立maxc棵权值线段树,动态开点 O(nlog^2n) O( 阅读全文
posted @ 2018-02-20 18:00 ws_zzy 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题解:容斥原理,总的三角形减去不符合题意的三角形 不符合题意的三角形即三点共线 设一个端点在(0,0),枚举另一个端点,用gcd算出线段中间夹着的点 因为相同的线段可以同时计算 所以复杂度O(n^2log) 容斥错了WA了几发QWQ 阅读全文
posted @ 2018-02-20 17:49 ws_zzy 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 题解:整体二分 以时间为关键字进行整体二分 用线段树维护区间和 Woc这题居然爆int,以后注意爆int的可能 阅读全文
posted @ 2018-02-20 12:31 ws_zzy 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 题解:Dp+线段树维护所有决策 f[i][j]表示第j个基站建在第i个位置,i之前的村庄与建基站的总费用的最小值 以j为阶段 枚举i,维护所有决策f[x][j-1]; 当一个村庄q不能被i覆盖了,那么在1~p之间建立基站的决策费用要+c p为q左边第一个不能覆盖q的村庄 复杂度O( nklogn); 阅读全文
posted @ 2018-02-20 12:28 ws_zzy 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 题解:burnside引理 DP出不动点的数目,用burnside引理算等价类 问题:不明白burnside引理的原理 阅读全文
posted @ 2018-02-20 12:05 ws_zzy 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 题解:a%b=a-[a/b]*b; ans=n*k-sigma([k/i]*i]); [k/i]有sqrt(k)种取值 last=k/(k/last); 阅读全文
posted @ 2018-02-20 12:02 ws_zzy 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 题解:树上差分就可以了 论看懂题意的重要性 最后-1的时候处理错了,WA了几发 阅读全文
posted @ 2018-02-20 11:53 ws_zzy 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 题解:对每一位分别考虑贡献 先求前缀和 按照二进制减法分类讨论,求出最终这一位是1还是0 用树状数组维护 注意:树状数组对0这个位置单独考虑 阅读全文
posted @ 2018-02-20 11:51 ws_zzy 阅读(208) 评论(0) 推荐(0) 编辑