树状数组
JA_yichao
这个作者很懒,什么都没留下…
展开
-
51nod P3111 小明爱拦截【树状数组】【DP】
树状数组+DP原创 2022-01-12 20:57:03 · 193 阅读 · 0 评论 -
SSL P1459 求最长不下降序列【DP】【树状数组】
树状数组+DP原创 2022-01-12 20:48:22 · 455 阅读 · 0 评论 -
POJ P2352 Stars 【树状数组】
树状数组原创 2022-01-12 16:25:41 · 120 阅读 · 0 评论 -
51nod P3122 小陶的疑惑2【树状数组】【差分】
树状数组原创 2022-01-12 16:22:43 · 270 阅读 · 0 评论 -
51nod P3121 小陶与杠铃片【树状数组】
树状数组原创 2022-01-12 16:16:28 · 358 阅读 · 0 评论 -
51nod P3120 小陶的疑惑【树状数组】
树状数组原创 2022-01-12 16:09:32 · 325 阅读 · 0 评论 -
SSL集训 某OJ2021.08.16 提高B组 Luogu P7416 [USACO21FEB] No Time to Dry P 【树状数组】
SSL集训原创 2021-08-16 20:52:06 · 179 阅读 · 0 评论 -
SSL集训 某OJ2021.08.14 提高B组 Luogu P7527 [USACO21OPEN] United Cows of Farmer John G【树状数组】
SSL集训原创 2021-08-15 16:45:00 · 247 阅读 · 0 评论 -
YbtOJ 树状数组课堂过关 例6 区间修改区间查询【二维树状数组】
思路根据例题4的思路,我们要先知道怎么差分,设 di,jd_{i,j}di,j 表示 (i,j)(i,j)(i,j) 位置上的差分数组。那么我们的差分思路是将 dx1,y1+=k,dx1,y2+1−=k,dx2+1,y1−=k,dx2+1,y2+1+=kd_{x1,y1}+=k,d_{x1,y2+1}-=k,d_{x2+1,y1}-=k,d_{x2+1,y2+1}+=kdx1,y1+=k,dx1,y2+1−=k,dx2+1,y1−=k,dx2+1,y2+1+=k我们维护的前缀和即:∑i=1原创 2021-05-22 15:11:39 · 107 阅读 · 0 评论 -
YbtOJ 树状数组课堂过关 例5 单点修改区间查询【二维树状数组】
思路这道题是二维树状数组模板题。代码#include<iostream>#include<cstdio>using namespace std;long long c[4100][4100];long long n,m,w,a,b,cc,d;long long lowbit(long long x){ return x&-x;}void add(long long x,long long y,long long k){ for(long lon..原创 2021-05-22 11:21:55 · 136 阅读 · 0 评论 -
YbtOJ 树状数组课堂过关 例4 区间修改区间查询【树状数组】【差分】
思路首先我们得先知道如何区间修改,单点查询。考虑差分,将 [x,y][x,y][x,y] 每一个数都加 kkk,设在 iii 位置上的差分数组是 did_idi ,将 dx+=k,dy+1+=−kd_x+=k,d_{y+1}+=-kdx+=k,dy+1+=−k。那么此时 aia_iai 就是 [x,y][x,y][x,y] 之间数的累加和,考虑维护前缀,则∑i=1nai=∑i=1n∑j=1idi\sum_{i=1}^{n}a_i=\sum_{i=1}^{n}\sum_{j=1}^{i}d_..原创 2021-05-22 10:03:48 · 126 阅读 · 0 评论 -
YbtOJ 树状数组课堂过关 例3 严格上升子序列数【树状数组】【离散化】【二维偏序】
思路首先依题意设 f[i][j]f[i][j]f[i][j] 表示以i结尾,长度为j的严格上升子序列的方案数。可得到动态转移方程,时间复杂度 O(n3)O(n^3)O(n3).然后观察动态转移方程发现其实就是一个二维偏序 (ai>ak,i>k)(a_i>a_k,i>k)(ai>ak,i>k),然后离散化。因为有m种长度,所以要建一个二维树状数组做。代码#include<algorithm>#include<iostream>..原创 2021-05-21 21:31:19 · 163 阅读 · 0 评论 -
YbtOJ 树状数组课堂过关 例2 逆序对【树状数组】【离散化】
思路这道题我们首先思考朴素做法。可以直接枚举 ∑i=1n∑j=1i−1(ai<aj,i>j)\sum _{i=1}^n\sum _{j=1}^{i-1} (a_i<a_j,i>j)∑i=1n∑j=1i−1(ai<aj,i>j),时间复杂度 O(n2)O(n^2)O(n2) 。考虑优化第二个循环。我们可以枚举 aia_iai ,首先在树状数组中 aia_iai 的位置加一,那么对于大于 aia_iai 的有数的位置一定是合法位置,所以比 aia_i..原创 2021-05-21 19:23:47 · 200 阅读 · 0 评论 -
YbtOJ 树状数组课堂过关 例1 单点修改区间查询【树状数组】
思路单点修改区间查询模板题。理解树状数组的原理就好做了。代码#include<iostream>#include<cstdio>using namespace std;long long n,q,a,c[1000010];long long w,x,y;long long lowbit(long long x){ return x&-x;}void add(long long x,long long y){ while(x<=n) ..原创 2021-05-20 16:51:13 · 155 阅读 · 0 评论 -
2020年9月12日普及组 T4 树【树状数组】【dfs序】
把 nnn 个点按照深度的奇偶性分类,如果 iii 的深度为奇数,我们令 flag[i]=1flag[i]=1flag[i]=1。如果 iii 的深度为偶数,我们令 flag[i]=−1flag[i]=-1flag[i]=−1。对于修改操作我们给以 xxx 为根的那整棵子树的每个点加上 val∗flag[x]val*flag[x]val∗flag[x],这可以用DFS序+树状数组在 O(logn)O(logn)O(logn) 的时间复杂度内解决。对于询问操作我们在树状数组中算出 xxx 的权.原创 2020-09-12 17:02:35 · 225 阅读 · 0 评论 -
Luogu CF261D Maxim and Increasing Subsequence【树状数组】
题目大意给你一个长度为 n 的 B 数组,A 表示B数组复制 t 遍后首尾相连后的数组,求 A 的最长上升子序列 。有 k 组询问,maxb 表示 B 数组中最大的数。思路首先我们可以得到:当t大于等于当前数列不同数字的个数时,答案就是不同数字的个数。证明假设当前不同数字的个数为 3,t=3;3,t=3;3,t=3;此时共有 nnn 个相同的序列,那么我们在第 kkk 个序列选择第 kkk 小的数 (k<=n)(k<=n)(k<=n),此时一定能保证生成含有 nnn原创 2020-08-18 19:19:26 · 138 阅读 · 0 评论 -
POJ3321 Apple tree【树状数组】
Apple tree【树状数组】原创 2020-08-18 10:01:53 · 173 阅读 · 0 评论 -
SSL1502 校门外的树【树状数组】
思路这道题其实也是一道树状数组模板题,我们要修改区间 [l,r][l,r][l,r] 的值,而树状数组不能直接修改。所以我们考虑差分。代码#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;long long c[1000010],c2[1000010];long .原创 2020-08-17 21:42:44 · 155 阅读 · 0 评论 -
Ural P1028 星星stars【树状数组】
题目大意天空中有一些星星,这些星星都在不同的位置,每个星星有个坐标。如果一个星星的左下方(包含正左和正下)有k颗星星,就说这颗星星是k级的。给定星星的位置,输出各级星星的数目。思路树状数组模板题因为y轴已经是升序所以直接对x进行树状数组处理即可就是模板#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>us.原创 2020-08-17 20:46:41 · 226 阅读 · 0 评论 -
洛谷 P3368 【模板】树状数组 2
本题为树状数组模板题同 【模板】树状数组 1 一样,只是增加了一些操作变通一下就好了。CodeCodeCode#include<iostream>#include<cstdio>using namespace std;int tree[5000010],a[5000010];int n,m,w,x,y,k;int lowbit(int x){ retu...原创 2020-03-23 19:53:29 · 124 阅读 · 0 评论 -
洛谷 P3374 【模板】树状数组 1
吼吼吼今天学习了树状数组前一段时间没有认真看别人的讲解,所以一直觉得很难,今天仔细学了学,发现好像没那么难呢!习题抽空做 !想学习树状数组的同学可以在洛谷此题的第一篇题解上学习,非常容易理解(看我多好,链接都给大家了 )不多说,上模板!#include<iostream>#include<cstdio>using namespace std;int...原创 2020-03-17 20:38:20 · 124 阅读 · 0 评论 -
2020.2.9普及C组 数列(sequence)【纪中】【前缀和】【树状数组】【离散化】
前缀和+离散化+树状数组代码代码代码#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;long long a[100010],f[100010];long lon...原创 2020-03-02 19:46:09 · 157 阅读 · 0 评论 -
树状数组
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/FlushHip/article/details/79165701...转载 2020-02-11 14:13:54 · 136 阅读 · 0 评论