数状数组哭了:我本来是搞区间和的,怎么被用来搞rmq了T^T。。。...
分类:
编程语言 时间:
2014-12-22 14:32:52
阅读次数:
199
题目大意:令F(i)为i的约数和,多次询问对于1
n,m
首先如果不考虑a的限制 令g(i)为1
那么显然有
利用线性筛处理出F(i) 那么答案显然是
治好了我多年的公式恐惧症。。。
现在我们只需要求出的前缀和 这个问题就能在O(√n)的时间内出解
枚举每一个i 枚举i的倍数 暴力即可求出这个函数 然后处理前缀和即可 复杂度是O(nlogn)的
那么现在有了a的...
分类:
编程语言 时间:
2014-12-22 11:20:34
阅读次数:
221
终于做到了BZ上最新的题2333这题一看就是。。。莫队,然后查询的时候树状数组。结果T了,诶诶诶诶%>_11 #include 12 #include 13 14 using namespace std;15 const int N = 100005;16 const int M = 100000....
分类:
其他好文 时间:
2014-12-21 23:35:19
阅读次数:
348
HDU5147 Sequence II(树状数组+前缀和+后缀和)...
分类:
编程语言 时间:
2014-12-21 22:13:14
阅读次数:
169
题目链接Sequence IITime Limit: 5000/2500 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 331Accepted Submission(s): 151Probl...
分类:
编程语言 时间:
2014-12-21 22:04:37
阅读次数:
296
题意:
n(5*10^5)个不同的数字组成的序列a 寻找满足如下约束条件的数字组数: i1
思路:
明显考察的是nlogn的算法 我们发现其实ai1和ai2可以放在一起考虑 同理ai3和ai4 这两组并没有相互影响
我们来看答案是怎么构成的 假设枚举i3的位置 那么我们希望知道“i3后面有几个数大于ai3” 这个可以通过树状数组处理
同理假设我们知道i2也希望知道“i2前面...
分类:
其他好文 时间:
2014-12-21 19:28:55
阅读次数:
151
http://acm.hdu.edu.cn/showproblem.php?pid=5147
Problem Description
Long long ago, there is a sequence A with length n. All numbers in this sequence is no smaller than 1 and no bigger than n, a...
分类:
编程语言 时间:
2014-12-21 18:01:53
阅读次数:
287
数据范围比较大,先用离散化将数据映射到可控的范围,然后应用树状数组求逆序求解。
总共有N个数,如何判断第i+1个数到最后一个数之间有多少个数小于第i个数呢?不妨假设有一个区间 [1,N],只需要判断区间[i+1,N]之间有多少个数小于第i个数。如果我们把总区间初始化为0,然后把第i个数之前出现过的数都在相应的区间把它的值定为1,那么问题就转换成了[i+1,N]值的总和。再仔细想一下,区间...
分类:
编程语言 时间:
2014-12-21 16:38:11
阅读次数:
230
Sequence II
Problem Description
Long long ago, there is a sequence A with length n. All numbers in this sequence is no smaller than 1 and no bigger than n, and all numbers are different in...
分类:
编程语言 时间:
2014-12-21 15:19:07
阅读次数:
302
类似LA4329
1..n个数字放到n个格子中,求四元组满足(a,b,c,d) a
这道题刚开始看就知道要用树状数组去做,起先想的是枚举a,c 这样的话复杂度n^2 必然TLE而且a,c之间大于a的数字也无法统计。
题解:枚举c点。
然后得到c之前满足a,b的数量再乘上比c大的d 的数量就是枚举c此时的数量。这里用了一个子问题的技巧,当枚举c到i点的时候,i-1的情况已知,即存储...
分类:
编程语言 时间:
2014-12-21 10:24:36
阅读次数:
238