传送门 树上前缀和。 在树上找一条权值和为 s 的链,其中这个链上的点按深度递增(递减)(不同) dfs 每搜到一个点求它的前缀和 sum[x],放入 set 中。 在 set 中找 sum[x] - s 的点,如果有,ans++ 退出 dfs 的时候再把 sum[x] 从 set 中删除 因为每个 ...
分类:
其他好文 时间:
2017-05-26 21:58:14
阅读次数:
248
在区间求和时,我们只需求出 [1, r],[1,l?1],利用前缀和的可减性,得到区间 [l,r] 的和。 但区间最值不满足这个性质。 我们可以把区间 [l,r] 拆分成若干个子区间,再合并得到答案。 画图可知,max_i需要的 max 只有 max_{i-2^0}, max_{i-2^1}, ma ...
分类:
编程语言 时间:
2017-05-25 23:27:26
阅读次数:
285
在JavaScript中定义了以下几种数据类型: 字符串(String) 数字(Number) 布尔(Boolean) 数组(Array) 对象(Object) 空(Null) 未定义(Undefined) 1. 字符串 字符串是以单引号'或双引号"括起来的任意文本: 如果'本身也是一个字符,那就可 ...
分类:
Web程序 时间:
2017-05-25 14:40:33
阅读次数:
207
AB模拟 C将所有距离一样的维护前缀和一起计算,还可以对于每对相邻的统计一下 D 交互题,有一些fflush的语句要求,gets好像可以用。。 大致思路是二分,做法非常牛逼啊。。 就是保证[l,r]中至少有一个被选的点,每次二分下去都如此。 最终得到的就是一个点。 另一个点同理,注意特判一下是否可以 ...
分类:
其他好文 时间:
2017-05-23 11:19:23
阅读次数:
201
665E 题意: 给一个数列和一个整数k,求这个数列中异或起来大于等于k的子串数量。 分析: 其实只要维护一个维护前缀和就行了,把前缀和加到字典树里,然后递归search一下,注意需要剪枝,不然会T, if(s + (1ll << (i + 1)) - 1 < k)return 0; 这句话的意思是 ...
分类:
其他好文 时间:
2017-05-20 18:57:02
阅读次数:
161
很好的一道题。 题意:给出长度为n的数列,选择k个互不相同的区间,满足每个区间长度在[L,R]内,求所有选择的区间和的总和最大是多少。(n,k<=5e5). 首先将区间和转化为前缀和之差,那么我们想要区间和的总和最大,一个朴素的想法是把所有满足限制的区间和排序,取最大的k个。 考虑每个右端点i,其中 ...
分类:
其他好文 时间:
2017-05-20 12:19:29
阅读次数:
196
题意:一个长度为N的数组A,从A中选出若干个数,使得这些数的和是N的倍数。 例如:N = 8,数组A包括:2 5 6 3 18 7 11 19,可以选2 6,因为2 + 6 = 8,是8的倍数。(2 <= N <= 50000,0 < A[i] <= 10^9) 分析:在modN意义下求A的前缀和, ...
分类:
其他好文 时间:
2017-05-19 13:29:16
阅读次数:
164
题意:将一个数x拆成a1+a2+a3+……,ai不等于aj,求最大的a1*a2*a3*……。 分析: 1、预处理前缀和前缀积,因为拆成1对乘积没有贡献,所以从2开始拆起。 2、找到一个id,使得2+3+4+……+id - 1(sum[id-1]) < x < 2+3+4+……+id(sum[id)。 ...
分类:
其他好文 时间:
2017-05-18 23:57:43
阅读次数:
448
题目链接:http://202.197.224.59/OnlineJudge2/index.php/Problem/index/p/14/ D.模拟,按照原图每一个字符变成一个a*b的矩阵构造新矩阵。 E.由于选取的区间点l,r都是不重复的,那么可以将整个问题描述为前缀和取2*m个点,每个点都不重复 ...
分类:
其他好文 时间:
2017-05-16 20:48:25
阅读次数:
311
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1103 这题一脸组合数学鸽笼原理例题的样子。 这个问题自己其实YY过很久了,结果今天看到又给忘了。大概是因为没有手写过,希望下次不再忘了。 求前缀和,再对n取模。 ...
分类:
其他好文 时间:
2017-05-16 18:40:18
阅读次数:
177