树状数组
kuricip
如果你瞄准月亮,即便迷失,也是在星辰之间
展开
-
P3368 【模板】树状数组 2
P3368 【模板】树状数组 2题目传送门P3368 【模板】树状数组 2题目大意给你一个长度为n的数组操作 1: 格式:1 x y k 含义:将区间 [x,y][x,y][x,y] 内每个数加上 kkk;操作 2: 格式:2 x 含义:输出第 xxx 个数的值。思路区间更新,单点查询的树状数组AC Code#include<cstdio>#include<algorithm>#include<iostream>#include<cstri原创 2020-08-30 17:56:17 · 127 阅读 · 0 评论 -
A Simple Problem with Integers(树状数组)
A Simple Problem with Integers题目传送门A Simple Problem with Integers题目大意给你一个长度为n的数组进行m次操作,操作包括对区间的值进行加减和对区间进行求和思路区间更新,区间查询的树状数组考虑使用更加简单的树状数组,区间更新可以使用差分维护,区间查询可以开两个数组维护int sum1[N]; //(D[1]+D[2]+...+D[n])int\ sum1[N];\ \ \ \原创 2020-08-30 17:41:43 · 764 阅读 · 0 评论 -
敌兵布阵(树状数组模板题)
敌兵布阵题目传送门敌兵布阵题目大意给你一个长度为n的数组,可以对其单点进行加减操作,可以对区间进行区间求和思路标准的树状数组模板,这里用线段树比较麻烦,听说暴力维护前缀和也能过AC Code#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>using namespace std;#define endl '\n'#define INF 0x3f原创 2020-08-30 17:03:08 · 123 阅读 · 0 评论 -
树状数组模板
在此只贴出模板,具体的原理参考大佬博客树状数组详解模板int n;int a[N],bit[N]; //对应原数组和树状数组int lowbit(int x){ return x&(-x);}void updata(int i,int k){ //在i位置加上k while(i <= n){ bit[i] += k; i += lowbit(i); }}int getsum(int i){ //原创 2020-08-30 12:55:48 · 62 阅读 · 0 评论 -
Sleepy Cow Sorting(树状数组)
Sleepy Cow Sorting题目传送门Sleepy Cow Sorting题目大意给你一个长度为n的数组,每次只能移动最前面的那个数字到任意位置求将数组按非递减排序需要的移动的最小次数和每次移动的距离思路可以将给定的数组分为两部分,分别为后半段顺序正确的部分,和前半段顺序不对的部分所以需要改变的即为前半段的部分,即为最优解每次移动的距离为在前半段乱序走过的路径和后半经过的路径,前半段可以自己求,后半段可以使用树状数组维护即将后半段正序部分建立起点权为1的树AC Code#in原创 2020-08-30 12:54:03 · 305 阅读 · 0 评论