区间 GCD题目描述最近 JC 同学刚学会 gcd,于是迷上了与 gcd 有关的问题。今天他又出了一道这样的题目,想要考考你,你能顺利完成吗?给定一个长度为 n 的字符串 s[1..n],串仅包含小写字母。对于区间 [l, r],你需要回答 s[l..r]中有多少个长度为 3 的子序列组成了"gcd ...
分类:
其他好文 时间:
2017-09-14 18:49:50
阅读次数:
233
题目背景 无 题目描述 给定一长度为n的动态序列,请编写一种数据结构,要求支持m次操作,包括查询序列中一闭区间中所有数的GCD,与对一闭区间中所有数加上或减去一个值。 输入输出格式 输入格式: 第1行两个数n,m,表示序列长度和操作次数。 第2行n个数ai,表示给定序列。 第3行至第m+2行,每行3 ...
分类:
其他好文 时间:
2017-08-24 17:53:44
阅读次数:
284
输入格式: 输出格式: 样例输入: glygshcyjcdzy 3 1 11 2 11 2 10 样例输入: 样例输出: 4 2 0 样例输出: 数据范围: 数据范围: 时间限制: 3S 时间限制: 3S 空间限制: 512MB 空间限制: 512MB 这题是一个统计题.如果只是两个字母,那就很好做 ...
分类:
其他好文 时间:
2017-08-02 13:57:43
阅读次数:
155
线段树写法不管,比较灵活。这里主要讨论DP实现。 其实单纯说RMQ解决的是区间最值查询是不准确的,只要满足一个区间的信息可以从它的覆盖区间获得(即[L,R]<=[L,r],[l,R] (l<=r) ,允许两个子区间重合)即可使用。重合不影响最值判断,所以最值查询是可以用RMQ的,其次如同区间gcd, ...
分类:
其他好文 时间:
2017-07-12 17:39:40
阅读次数:
112
1094: 等差区间 Time Limit:5000/3000 MS (Java/Others) Memory Limit:163840/131072 KB (Java/Others)Total Submissions:655 Accepted:54 Description 已知一个长度为 n 已知 ...
分类:
其他好文 时间:
2017-03-06 23:59:18
阅读次数:
375
题意:给定n个数,m个询问,每次询问一个区间内所有连续子区间的gcd的和。n,m<=10^5 题解: 这题和之前比赛的一题很像。我们从小到大枚举r,固定右端点枚举左端点,维护的区间最多只有log段。为什么?以为长区间的gcd肯定是短区间gcd的约数,并且要是不同的话至少要/2,最多那就只有log数值 ...
分类:
其他好文 时间:
2016-11-12 09:28:08
阅读次数:
192
题意:长度n的序列, m个询问区间[L, R], 问区间内的所有连续子段的不同GCD值有多少种. 题解: 1.因为n个数的gcd等于前n-1个数的gcd值再于第n个数gcd一下的值,再加上如果固定终点,区间向前延伸越多gcd必定是非严格递减的,所以我们可以预处理出以每一个数为终点的所有的后缀的gcd ...
分类:
其他好文 时间:
2016-09-13 22:17:06
阅读次数:
232
GCD Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2742 Accepted Submission(s): 980 Problem Des ...
分类:
其他好文 时间:
2016-08-21 10:58:57
阅读次数:
181
对于第一问:无修改的查询区间GCD,可以采用RMQ倍增的思想。 第二问:可以预处理。暴力枚举左端点L。GCD从左到右是递减的,并且肯定是有一些段是一样的值,值的种类最多只有log(1000, 000, 000)种,因此可以二分确定每一段的范围。然后用map统计一下即可。 ...
分类:
其他好文 时间:
2016-07-21 23:45:33
阅读次数:
243
题目大概说给一个包含n个数的序列,多次询问有多少个区间GCD值等于某个区间的gcd值。 任何一个区间不同的GCD个数是log级别的,因为随着右端点向右延伸GCD是单调不增的,而每次递减GCD至少除以2。 考虑固定左端点,最多就nlogn种GCD,可以直接把所有区间GCD值预处理出来,用map存储各种 ...
分类:
其他好文 时间:
2016-07-20 09:01:23
阅读次数:
164