树状数组
文章平均质量分 66
lyc1635566ty
这个作者很懒,什么都没留下…
展开
-
DP+树状数组优化-sort it-neu2016第一次月赛
问题 F: Sort It时间限制: 6 Sec 内存限制: 128 MB提交: 31 解决: 9[提交][状态][讨论版]题目描述You are given a permutation of length n:p1,p2,...pn.Consider arrays of length n with possibly equal number from 1 to n.原创 2016-02-20 16:41:21 · 332 阅读 · 0 评论 -
HDU-5775-Bubble Sort-树状数组
题意:根据题目给的冒泡排序规则,计算每个数字在冒泡排序过程中,到达的最右和最左坐标差思路:发现,能向右移动的距离是该数右边有多少比他小的数。最左端的距离是min(原本坐标,数值)右边有多少个比他小的数可以通过树状数组维护一下 #include#define maxn 111111using namespace std;int n;int a[maxn];int c[ma原创 2016-07-29 17:24:38 · 211 阅读 · 0 评论 -
树状数组模版(单点修改区间求和)(区间修改单点求值)(区间修改区间求和)
eg。hdu1166(单点修改区间求和)#include#define maxn 111111using namespace std;int n;int c[maxn];int b[maxn];int lowbit(int x) { return x&-x;}/**单点修改区间求和**//**add(x,num);sum(r)-sum(l-1);每次x号位置原创 2016-07-23 12:56:50 · 1971 阅读 · 0 评论 -
HDU-5792-World is Exploding-树状数组
题意:求一个n个数字的序列A[n] 其中a,b,c,d两两互不相等,1A[d] 其中a,b,c,d的组数思路:先算一个总的数量=逆序对乘顺序对。然后再减去重复,发现只有a=c a=d b=c b=d然后用树状数组维护,首先要离散化。ls[i],lb[i],rs[i],rb[i]分别表示左边比当前位置小的,左边比当前位置大的,右边比当前位置小的,右边比当前位置大的。逆序对数=sig原创 2016-08-06 21:23:57 · 235 阅读 · 0 评论 -
UVALive 7139-Rotation-前缀矩阵
题目:一辆车沿着网格线按给定路线走,每个网格里有一个人,人的视线始终看着车,问这些人净转多少圈的平方和。思路:首先发现,净转就是这个线路绕这个点转了多少圈。然后发现,这个值就是这个网格左边向下的次数,和向上的次数差这个可以用树状数组的思想,用前缀和,来维护,数组由于边界不确定可以有vector#include#include#include#include#include#i原创 2016-08-14 00:21:01 · 644 阅读 · 0 评论