摘要: 题目here: 给出n个数,现在有m个区间询问l[i],r[i],问如何重新排列这n个数,使得 询问的和值最大分析: 方法一:差分数列 一维的差分数列如下定义: 假设原数组为a[1]...a[n],a[0] = 0 差分数列数组为d[1]...d[n] 则d[i] = a[i]-a[i-1] (d数组初始化) 我们发现:a[i] = sigma(d[i]) 所以我们对于区间[l,r]执行加同一个数的时候,我们可以执行 d[l] += val , d[r+1] -= val; 最终,我们可以用差分数列的累加和计算a[i]的值。#i... 阅读全文
posted @ 2013-02-25 08:43 yejinru 阅读(396) 评论(0) 推荐(0) 编辑