摘要: 传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4765 【题解】 我们可以分块来做。 首先我们预处理每块的答案,并且处理出来f[x,i]表示x改动了,i块有多少个要改动。 修改用DFS序+BIT来块中暴力,整块用上面的方法处理即可。 询问块中 阅读全文
posted @ 2017-05-01 22:40 Galaxies 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4504 【题解】 我们初始考虑是能不能O(logn)内求出区间[l,r]内的答案,我们对权值建主席树然后差分(但是不行)。 所以必须改变思路(!) 对于每个右端点i,把它所能包含的左端点区间看成 阅读全文
posted @ 2017-05-01 21:36 Galaxies 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3784 【题解】 和超级钢琴很像啊。 一看题目,无脑点分。 那么我们发现点分的路径形式和“超级钢琴”的哪个很像啊。 点分是子树合并对吧,当前子树内的每个点都能选择前面子树的区间,那么跟“超级钢琴 阅读全文
posted @ 2017-05-01 20:09 Galaxies 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2006 【题解】 思路巧妙啊! 前置技能:序列和可以转化成前缀和的形式,那么前缀和左端点固定了右端点就是区间找最大值了。 记录五元组(from, l, r, pos, val)表示从from开始 阅读全文
posted @ 2017-05-01 20:05 Galaxies 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3687 【题解】 记f[i]为和为i的子集出现了几次。 那么加入一个数x,如果选择,就相当于f整体左移x;不选择就是f。那么异或起来就行了。 用bitset实现。复杂度O(n*2000000/3 阅读全文
posted @ 2017-05-01 19:49 Galaxies 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3992 【题解】 很容易得到一个dp但是复杂度不对 我们想到用原根把乘法改成加法。 然后a1a2...an=g^(b1+b2+...+bn) 我们找到g^k=x,那么就有b1+b2+...+bn 阅读全文
posted @ 2017-05-01 11:30 Galaxies 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4602 【题解】 对于每组齿轮(u, v)连边,权值为y/x(反向边x/y) 那么直接dfs计算一遍即可。 # include <math.h> # include <stdio.h> # in 阅读全文
posted @ 2017-05-01 09:49 Galaxies 阅读(171) 评论(0) 推荐(0) 编辑