知识点前置 ·树状数组 题面来源 https://www.luogu.com.cn/problem/P3031 题目大意 给你一个长度为 \(n\) 序列,求出满足以下条件的子序列个数有多少个: 中位数大于给出的 \(k\) 解题方法 自己想了半天才打出来 分割线 因为我们要求的区间中,每个数 $a ...
分类:
其他好文 时间:
2020-07-04 11:55:05
阅读次数:
67
http://usaco.org/index.php?page=viewproblem2&cpid=719 ...
分类:
其他好文 时间:
2020-07-04 11:45:20
阅读次数:
46
P3374 【模板】树状数组 1 #include<bits/stdc++.h> using namespace std; const int N=5e5+10; int n,m; int a[N]; int c[N<<2]; int lowbit(int x){ return x&-x; } vo ...
分类:
编程语言 时间:
2020-06-28 20:39:52
阅读次数:
53
P3368 【模板】树状数组 2 #include<bits/stdc++.h> using namespace std; const int N=5e5+10; int a[N]; int c[N<<2]; int n,m; int lowbit(int x){ return x&-x; } vo ...
分类:
编程语言 时间:
2020-06-28 20:38:15
阅读次数:
50
在php7以上版本因为数组结构的改变很多网上转换为树状数组的实例已经无法使用了 public function list_to_tree($list, $pk='id', $pid = 'pid', $child = 'children', $root = 0) { //创建Tree $tree = ...
分类:
编程语言 时间:
2020-06-28 15:22:17
阅读次数:
64
众所周知,树状数组是一个常用的数据结构。。。 1.为啥用树状数组: 如果用普通的前缀数组来维护前缀的信息,即使查询时o(1)的,但是修改就几乎要o(n),效率有时十分低下. 而树状数组却弥补了这一缺点,修改和查询都是o(logn)的 2.如何构建树状数组: 根据二次幂的性质,我们可以把一个数转化成一 ...
分类:
编程语言 时间:
2020-06-26 14:16:57
阅读次数:
64
##题面 题目链接 ##思路 朴素的想法我们回去暴力修改区间元素,从而判断教室能否够用,但是看数据范围显然这会超时,既然区间问题我们立马想到前缀和和差分数组,and线段树和树状数组,这里不写树状数组和线段树的做法。我们看数据测试量,然后看了一下,这个答案具有线性性质,所以我们可以二分加速,所以我们二 ...
分类:
编程语言 时间:
2020-06-26 10:45:01
阅读次数:
128
求有多少在a前面的数比a小的思路: 在看之前,你必须了解树状数组的基本函数 inline ll lowbit(ll x) { return x&(-x); } inline void insert(ll x,ll y)//加入 { while(x<=n) { sum[x]+=y; x+=lowbit ...
分类:
编程语言 时间:
2020-06-25 23:39:01
阅读次数:
83
一道 树状数组套权值线段数的模板题。(然而我刚开始用线段树套平衡树做了) (orz hzwer) 题意 给定一个含有 n 个数的序列 \(a_1,a_2 \dots a_n\),需要支持两种操作: Q l r k 表示查询下标在区间$ [l,r]$中的第 k 小的数 C x y 表示将 \(a_x\ ...
分类:
其他好文 时间:
2020-06-25 15:20:20
阅读次数:
72
求逆序对 描述 给定一个序列a1,a2,…,an,如果存在iaj,那么我们称之为逆序对,求逆序对的数目 输入 第一行为n,表示序列长度,接下来的n行,第i+1行表示序列中的第i个数。 N<=10^5。Ai<=10^5 输出 两行,第一行为所有逆序对总数,第二行为本质不同的逆序对总数。 输入 4 3 ...
分类:
编程语言 时间:
2020-06-25 13:37:59
阅读次数:
64