树状数组
twh233
嘻嘻
展开
-
树状数组
poj 2155二维树状数组DescriptionGiven an N*N matrix A, whose elements are either 0 or 1. A[i, j] means the number in the i-th row and j-th column. Initially we have A[i, j] = 0 (1 We can chan原创 2017-02-22 16:54:21 · 153 阅读 · 0 评论 -
Wannafly挑战赛7 E.珂朵莉与GCD (树状数组
题目链接 首先看到数据,肯定离线了。其次区间问题很有可能分块,莫队啥的。对其r排序过后,发现每添加一个数进入gcd数组里,对其后面的答案都有作用,那么莫队也省了,直接前缀和维护就可以了,用树状数组减少复杂度到log级别 /// .-~~~~~~~~~-._ _.-~~~~~~~~~-./// __.' ...原创 2018-10-08 22:31:11 · 441 阅读 · 0 评论 -
Wannafly挑战赛7 D.codeJan与青蛙 (dp+优化树状数组
题目链接 dp[i][j]代表第i个位置,第j个洞的花费转移方程dp[i][j]=min(dp[i][j],dp[k][j-1]+cost[k][i]) cost[k][i]代表从i-k上的青蛙全去i位置的花费sum[i]=sum[i-1]+b[i];fsum[i]=fsum[i-1]+a[i]*b[i]; cost[k][i]=fsum[i]-fsum[k]-a...原创 2018-10-08 22:26:02 · 164 阅读 · 0 评论 -
poj 3321 Apple Tree (子树权值和)
题目链接练习题。子树权值和为query(out[x])-query(in[x]-1) /// .-~~~~~~~~~-._ _.-~~~~~~~~~-./// __.' ~. .~ `.__/// .'// ...原创 2018-09-22 16:54:29 · 518 阅读 · 0 评论 -
CodeForces - 369E Valera and Queries 区间包含问题 (树状数组+离线)
题目连接题意:给出N条线段,有M个询问,询问的内容是,k个点,共落在多少条所给线段上做法:将每一个查询的点记录下来,存入用这些点的补集,比如选中1,3,6那么[2,2],[4,5] [7,N]就是补集,这个题反向做如果这些补集包含了之前已存在的区间。那么这些点一定不会在存在的区间里面,所以只需看这些补集包含的区间数。用总数减去区间数就是我们想要的答案。然而我们还需要离线...原创 2018-09-19 18:31:46 · 166 阅读 · 0 评论 -
POJ 2763 Housewife Wind(LCA+树状数组+DFS序 改变边权
题目链接题意: 知道了一颗有 n 个节点的树和树上每条边的权值,起点为s,对应两种操作: 0 x 输出 当前节点到 x节点的最短距离,并移动到 x 节点位置 1 x val 把第 x 条边的权值改为 val 做法:首先这肯定是需要LCA求公共祖先的点,其实对于改变边权的操作,可以记录每条边的一个端点,对其左区间+ 右区...原创 2018-09-24 01:07:09 · 200 阅读 · 0 评论 -
牛客练习赛3 F 监视任务 每个区间K个 树状数组+贪心
https://www.nowcoder.com/acm/contest/13/F把所有约束按照右端点排序。这样每一个前面的约束区间[l1,r1],与后面的一个约束区间[l2,r2]的交,一定为[max(l1, l2),r1]。对于排序后的区间依次满足约束,假设当前枚举到的约束现在没有满足,就不断把对应区间中最右端的0改为1。///原创 2017-11-23 12:49:31 · 359 阅读 · 0 评论 -
牛客练习赛7 E 珂朵莉的数列 所有子区间逆序对
https://www.nowcoder.com/acm/contest/38/E假如i j是逆序对那么他们的贡献就是i*(n-j+1)假如i和j是逆序对 k和j是逆序对 那么就是(k+j)*(n-i+1) i>k,j那么在更新树状数组的时候add a[i]的位置,那么就达到了k+j的效果#include using namespa原创 2017-12-02 16:14:29 · 626 阅读 · 0 评论 -
北京师范大学第十四届ACM决赛- B Squared Permutation 树状数组
a[a[l]] a[a[r]]是最后的值。要是l和r交换,首先改变的是a[a[l]] a[a[r]]要是id[a[i]]也就是a[i]对应的位置,不为当前这个要换的位置,那么也要变所以最大可能变4次/// .-~~~~~~~~~-._ _.-~~~~~~~~~-./// __.'原创 2017-11-16 21:27:42 · 228 阅读 · 0 评论 -
seventh又来出题了 子区间的和大于等于0 逆序对+前缀和
http://120.78.128.11/Problem.jsp?pid=3087给你一个序列{a1,a2,a2...an},求有多少对(l,r),满足就是求有多少个子区间的和大于等于0 维护一个前缀和,然后有多少子区间和≥0就是,前缀和这些有多少顺序对,顺序对=总-逆序对。/// .-~~~~原创 2017-11-11 13:33:42 · 611 阅读 · 0 评论 -
BZOJ 4017&&2017 icpc 西安G 区间异或和
传送门第一个问题,一堆0和1,求所有区间的异或的和第二个问题,一堆0和1,求所有区间的和的异或令xor(i)表示前i项的异或值,xor(l,r)表示第l项到第r项的异或值,那么xor(l,r)=xor(r)⊕xor(l−1)。 考虑xor(l,r)的二进制第k位是1的可能情况,当且仅当xor(r)和xor(l−1)的二进制第k位不同。 那么我们可以固原创 2017-10-31 12:03:23 · 494 阅读 · 0 评论 -
Codeforces Round #348 E. Little Artem and Time Machine 树状数组 单点更新
传送门题意有三个操作1 x y,在第x秒插入一个y2 x y,在第x秒移走一个y3 x y, 问第x秒有多少个y大概算一算,树状数组就可以解决,单点更新。/// .-~~~~~~~~~-._ _.-~~~~~~~~~-./// __.'原创 2017-10-17 18:30:10 · 175 阅读 · 0 评论 -
Codeforces Round #413 C. Fountains
传送门C. Fountainstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputArkady plays Gardenscapes a lot. Arka原创 2017-05-14 22:09:26 · 373 阅读 · 0 评论 -
2018六校联合周赛上学期第二场 QQ的烦恼(树状数组)
题目链接 原题:poj 1990 首先对数据进行离散化排序,给其标记id号再进行对v排序。n_num代表当前猫坐标之前的猫的总数,x_sum代表当前猫坐标之前的猫的坐标和对于q[i]左边的猫,贡献和是q[i].v*(n_num*q[i].x-x_sum)对于q[i]右边的猫,贡献和是q[i].v*(sum(n,2)-x_sum-(i-1-n_num)*q[i].x)...原创 2018-10-24 22:11:42 · 133 阅读 · 0 评论