随笔分类 -  数据结构

摘要:分析: 首先考虑如何计算整个数组有多少个good区间 容易发现一个区间是good区间当且仅当max-min-len=-1,且任意区间max-min-len>=-1 我们可以枚举右端点,然后维护前面每个位置到当前右端点的max-min-len值,容易发现我们只需要维护区间最小值和最小值的个数就行了,于 阅读全文
posted @ 2018-07-03 23:10 Chellyutaha 阅读(877) 评论(0) 推荐(0)
摘要:E(pbds) 题意: 1<=m,n<=5e5 分析: 首先指向关系形成了一个基环外向树森林 实际上我们可以完全不用真正的去移动每个球,而只需要在计数的时候考虑考虑就行了 对于树上的情况,我们假设在时间为now的时候在距离根为dis的点上放了个球,我们记录下now+dis 对于询问树上的情况,即查找 阅读全文
posted @ 2018-05-31 21:12 Chellyutaha 阅读(282) 评论(0) 推荐(0)
摘要:A 略 B 略 C(计数) 题意: 有n个白球排成一行,故有n-1个空隙,我可以给一个空隙对应的两个白球都涂黑。n-1个空隙的一个排列就对应着一个涂黑顺序,定义这个涂黑顺序的价值是“将所有n个球都涂黑的最少步数”。对于n-1的所有排列,我们要求对应价值的和。 n<=1e6 分析: 首先易得最少步数一 阅读全文
posted @ 2018-05-01 16:14 Chellyutaha 阅读(257) 评论(0) 推荐(0)
摘要:题意: (1):在当前字符串的后面插入一个字符串 (2):询问字符串s在当前字符串中出现了几次?(作为连续子串) 字符串长度<=6e5,询问总长度<=3e6 分析: 考虑建个sam,然后把slink连起来就形成了一个前缀树 对于每个询问的串,就是求出它在sam里对应的点,然后在slink树种该点子树 阅读全文
posted @ 2018-04-17 00:02 Chellyutaha 阅读(453) 评论(0) 推荐(0)
摘要:B(倍增) 题意: 分析: 先可以用two point预处理出以每个位置为起点的连续段<=k的下一个终点 然后对于每个询问,倍增跳就行了 时间复杂度O(nlogn) C(扫描线处理区间询问) 题意: 分析: 先容易考虑到莫队算法,合并用并查集就行,但删除就很不方便了,而且n高达1e6,所以就无法用莫 阅读全文
posted @ 2018-04-03 18:23 Chellyutaha 阅读(145) 评论(0) 推荐(0)
摘要:B(two point) 题意: 给出长度为n的非递减数组E[1..n],对于所有三元组(i,j,k),1<=i<j<k<=n且Ek-Ei<=U,我们需要计算出最大的(Ek-Ej)/(Ek-Ei) n<=1e5 分析: 考虑枚举i和k,那么j一定是i+1 容易发现k越靠右值越大,所以k是满足Ek-E 阅读全文
posted @ 2018-04-02 23:04 Chellyutaha 阅读(205) 评论(0) 推荐(0)
摘要:C(分段) 题意: 分析: 我们分别考虑p=2和p>=3的情况 当p=2的时候,个数明显是[L,R]内完全平方数的个数 当p>=3的时候,我们注意到这样的数字个数是1e6级别的,且a最多也不超过1e6 我们可以对于每个a去枚举对应的p,然后丢到一个set里去重 还有一点要注意的,p=2可能会和p>= 阅读全文
posted @ 2018-04-01 16:52 Chellyutaha 阅读(166) 评论(0) 推荐(0)
摘要:D(树上倍增) 题意: 刚开始有一个点1,权值为0。 接下来有q个操作,每个操作有两种: 1 R W:新加一个点,这个点的权值为W,这个点的父亲是R 2 R X:在从点R到1的路径上,取出从R开始的不降单调栈,问从栈底到栈顶这么多元素,最多能取出多少个点,使得这些点的点权和<=X 强制在线 q<=4 阅读全文
posted @ 2018-03-20 16:30 Chellyutaha 阅读(179) 评论(0) 推荐(0)
摘要:开头致敬原文:http://codeforces.com/blog/entry/44351 dsu on tree 是一个很神奇的技术,可以替代启发式合并、点分治,可以处理无修改的子树询问问题,可以处理任何乱搞的询问,是“树上的莫队”。 一、什么是dsu on tree 从一个例题看起:现在有一个树 阅读全文
posted @ 2018-03-16 23:06 Chellyutaha 阅读(441) 评论(0) 推荐(0)
摘要:A 略 B(大数) 题意: 求的奇偶性 其中n<=10^1000 分析: 等价于求$\biggl\lfloor\frac{n}{1}\biggr\rfloor + \biggl\lfloor\frac{n}{2}\biggr\rfloor+\biggl\lfloor\frac{n}{3}\biggr 阅读全文
posted @ 2018-03-13 17:45 Chellyutaha 阅读(130) 评论(0) 推荐(0)
摘要:题意: 有一个无向连通图,支持三个操作: 1 x y d : 新建一条x和y的无向边,长度为d 2 x y :删除x和y之间的无向边 3 x y :询问x到y的所有路径中(可以绕环)最短的是多少(路径长度是经过所有边的异或) n,m,q<=2e5 分析: 如果没有加边和删边操作,那么就是个经典的线性 阅读全文
posted @ 2018-03-11 15:37 Chellyutaha 阅读(569) 评论(0) 推荐(0)
摘要:补题进度:10/10 A(树形dp) 略 B(dp) 题意: 给出一个n个关键节点的机械手臂,最开始是竖直的,即关键点在二维平面上的坐标分别是(0,0) (0,100) (0,200) (0,300)......,然后我们每次可以选择一个关键节点把它旋转45°(当然它上面的那些点也要跟着旋转) 现在 阅读全文
posted @ 2018-03-01 14:58 Chellyutaha 阅读(130) 评论(0) 推荐(0)
摘要:补题进度:6/10 A(状压dp) 题意: 有n个数字1,2,...,n,有m个限制(a,b),表示至少要有一个数字a排在数字b的前面 你需要构造出一个含有数字1~n的序列,数字可以重复多次,要求该序列满足所有的m个限制,并且长度最短,你只需要输出最短的长度 n<=18,m<=n(n-1) 分析: 阅读全文
posted @ 2018-03-01 11:35 Chellyutaha 阅读(163) 评论(0) 推荐(0)
摘要:补题进度:7/11 A(博弈论) 略 B 待填坑 C(贪心) 题意: 一个序列是good的当且仅当相邻两个数字不相同。给出一个长度为n的数列,每个数字是ai。定义一种操作就是把a中某个元素拿到首位去,问最少需要多少次操作才能让数列a变成good的。如果不可行则输出-1。 n<=1000,1<=ai< 阅读全文
posted @ 2018-03-01 10:10 Chellyutaha 阅读(183) 评论(0) 推荐(0)
摘要:补题进度:8/10 A(计数+BIT) 题意: 给一个长度为n的数组a[],任意选0<=i<=j<n,将a[i]~a[j]从小到大排序,形成新的数组。问有多少个不同的新数组。 N,a[i]<=1000000 分析: 对答案有贡献的ij一定是a[i]不是i~j的最小值,a[j]不是i~j的最大值,于是 阅读全文
posted @ 2018-02-10 23:13 Chellyutaha 阅读(154) 评论(0) 推荐(0)
摘要:补题进度:8/10 A(组合计数) 题意: 一个人站在数轴原点,每秒有1/4概率向前走一步,1/4概率向后走一步,1/2概率不动,问t秒后在p位置的概率。 t,p<=100000 分析: 枚举不动的个数,于是向前走的个数和向后走的个数都确定了,然后就可组合计数了。 B(平面图k小割) 题意: 给出一 阅读全文
posted @ 2018-02-06 21:55 Chellyutaha 阅读(274) 评论(0) 推荐(0)
摘要:A、B、C 略 D(dfs+强连通分量) 题意: 给出一个n(n<=500)点m(m<=100000)边的有向图,问能否通过删去一条边使得该图无环。 分析: 最简单的想法就是枚举一条边删去然后判断图是否有环,这样是O(m^2)的不能接受 仔细想想,如果图中环数<=1,则YES;如果图中环数>=2,那 阅读全文
posted @ 2018-01-16 16:06 Chellyutaha 阅读(230) 评论(0) 推荐(0)
摘要:寒武纪camp网络测试赛 地址:oj点我进入 A(树形dp+树链剖分) 题意: 分析: 考虑树形dp,f0(x)和f1(x)分别表示以x为根的子树,不取x点或取x点的最大合法子集的元素个数 那么对于一个询问来说,答案就是max(f0(x),f1(x)),我们的任务就是对于每次修改操作维护所有f数组的 阅读全文
posted @ 2018-01-16 11:32 Chellyutaha 阅读(257) 评论(0) 推荐(0)
摘要:地址:https://www.nowcoder.com/acm/contest/58#question A(贪心) 略 B(贪心+栈) 略 C(manacher+后缀数组) 分析: 考虑枚举字符串的对称轴在哪 容易发现我们希望从对称轴开始尽可能向两边扩展成为回文串,在不能再扩展的位置就是我们的分割线 阅读全文
posted @ 2018-01-13 17:09 Chellyutaha 阅读(230) 评论(0) 推荐(0)
摘要:补题进度:10/12 地址:http://codeforces.com/gym/101194 A(签到) 略 B(数位DP) 题意: 定义一个01字符串为good串当且仅当将其奇数位或者偶数位单独拎出来是个回文串。 输出长度为n(<=1e5)的字典序排在第k(<=1e18)位的good串 分析: 很 阅读全文
posted @ 2017-12-09 13:14 Chellyutaha 阅读(966) 评论(0) 推荐(1)