数据结构
文章平均质量分 77
ZephyrGuo
目前就职于阿里云数据库团队
展开
-
Codeforces Round #169 (Div. 2) 276E Little Girl and Problem on Trees
题意: 给你一棵树,有两种操作:1.更新点v,离v点d距离内的所有点都增加x。2.查询v点的值。思路: 题目有个特点,就是每个节点的度小于等于2(除了根1以外),这里的度不是树中的度,是图论里度的定义。也就是说去掉根节点1,剩下的就是许多条链。那么可以每条链维护一个BIT。同时在d距离内从v点出发有可能到达别的链,我们还要更新别的链。但如果一条一条去更新,会有超时。我们可以先从v出发,原创 2013-03-07 18:04:08 · 777 阅读 · 0 评论 -
Codeforces Round #145 (Div. 1) 240F TorCoder
题意: 给一个字符串,有m次操作。每次操作子串[l,r],如果子串能变成回文就把它变成字典序最小的回文,否则不操作。输出最后的字符串。思路: 如果你知道一个字符串有几个a组成几个b组成...,并且它能够组成回文,那么你就能迅速写出它字典序最小的回文(a先放两边再b这样下去)。所以我们只要用线段树统计好字符串里26个字母的个数就能得出回文,并且按这个回文更新线段树。代码:原创 2013-02-17 23:16:41 · 653 阅读 · 0 评论 -
HDU 4747 Mex
题意:求所有子区间Mex的和。Mex是最小的,不存在集合里的非负整数。例如{1,2,4}的Mex等于0。思路:记区间[l,r]的Mex值为M(l,r)。考虑n个数M(1,1),M(1,2),M(1,3)...M(1,n)组成的序列,必然是非递减的,记这样的序列的S(1)。先求出这S(1),接着要求出M(2,2),M(2,3)...M(2,n),即S(2)。S(1)变成S(2原创 2013-09-17 16:55:12 · 1933 阅读 · 0 评论 -
HDU 4777 Rabbit Kingdom
杭州区域赛的题目题意:给定区间[l,r] ,求[l,r]内有多少个数满足与区间内其他数都互质。思路:处理出每个数,最左边能互质到的位置L[i],以及右边R[i]。(具体方法看代码)然后用树状数组维护区间的覆盖,按l离线查询。然后从左往右扫。对于当前位置p,找出所有L[i]==p的数。然后i位置+1,R[i]+1的位置-1。因为p以及p以后的位置,这个L[i]原创 2014-01-20 00:18:32 · 728 阅读 · 0 评论