"题目" 一道树状数组的题。 话说题目直接告诉做法是什么鬼? 首先这个题直接暴力是$O(n^2)$的,不能通过(~~评论里说可以?可能数据太水了,建议加强~~) 考虑优化,首先对于答案里的$max$,可以直接通过排序优化掉,即把数据从小到大排序,每次更新答案的时候就直接使用当前的$V$就可以了。 之 ...
分类:
其他好文 时间:
2020-04-25 17:22:48
阅读次数:
59
CDQ分治不但能解决三维偏序问题,还能将某些问题的动态版本变成静态。 比如这题是单点修改,区间查询,这样我们就可以将输入的顺序当作时间轴,之后进行CDQ分治 按x轴排序后,对y进行树状数组加减,这道题就变成了x比他小,并且y也比他小的个数查询 这题还用到了简单的容斥原理,也就是二维前缀和的思想来求取 ...
树状数组是利用数的二进制特征进行检索的树状结构 一般只适合对点进行更新O(logN),对区间进行查询O(logN) 对于源数据a[],c[]表示的时a[n-2^k+1]+a[n-2^k+2]+.....+a[n]的和,其中k为n在二进制下末尾0的个数,c[i]的覆盖范围长度时lowbit(i) 即i ...
分类:
编程语言 时间:
2020-04-19 17:39:55
阅读次数:
69
1.树状数组:题目:UVA1428 1 #include<iostream> 2 #include<algorithm> 3 #include<cstdio> 4 #include<string> 5 #include<cstring> 6 #include<numeric> 7 #include< ...
分类:
其他好文 时间:
2020-04-18 20:11:25
阅读次数:
110
题目链接:https://nanti.jisuanke.com/t/42400 这还是去年去现场赛打的,当时菜的不行,就白给了。最近学了主席树套树状数组,感觉好强的数据结构啊。我们学长说这题挺简单,建字典树dfs序,跑cdq分治就好了(%%%)。本菜鸡发现这题主席树套树状数组也能做。 题意:给你n个 ...
分类:
其他好文 时间:
2020-04-15 16:32:05
阅读次数:
135
题目 "点这里" 看题目。 分析 看到中位数,当然会想到二分答案。 考虑检查答案。自然,我们需要找出中位数小于二分值$k$的区间的个数。考虑构造一个$b$: $$b_i=( 1)^{[a_i\ge k]}$$ 可以发现,这个$b$满足,如果区间$[l,r]$的中位数小于$k$,则$\sum_{i=l ...
分类:
其他好文 时间:
2020-04-12 18:15:00
阅读次数:
79
分块与树状数组均在区间问题上有重要的应用 emm分块效率上不如树状数组,但是思路比较好想 先说分块: 将n个数的序列分为sqrt(n)块,预处理每块数据的信息以加快后续对区间信息的查询 先上一段代码: const int maxn = 5e5 + 50; int sum[maxn],a[maxn], ...
分类:
编程语言 时间:
2020-04-09 19:13:45
阅读次数:
108
题意:给两个长度为n的序列(a1,a2......,an)、(b1,b2......bn)和m个询问以及一个整数k,找出满足k <= S(t) = Σ(i=1 to n) ((t-bi) / ai)向下取整 的最小t。考虑函数的单调性此题可以二分,对于该式子可以证明 ((t-bi) / ai)向下取 ...
分类:
编程语言 时间:
2020-04-09 10:50:50
阅读次数:
70
Bitwise Xor 我们可以发现一个序列中的最小的异或值是两个大小相邻的数的$xor$取$min$。 那么我们对序列排序。 只需要计算相邻的$xor$是大于等于$k$的方案。 $dp[i]$是以$i$结尾最小$xor$大于$K$的方案。 然后我们可以类似于用树状数组来搞最长升降转移。 这次用$t ...
分类:
其他好文 时间:
2020-04-07 22:27:16
阅读次数:
80
树状数组(下) [TOC] 在 "树状数组(上)" 中我提到了树状数组的基本操作与变式,现在来看看它的实际应用和一些题目。 应用 逆序对 设$a$为一个有$n$个数字的有序集($n 1$),其中所有数字各不相同。 如果存在正整数$i$,$j$使得$1\leqslant ia[j]$, 则有序对$(a ...
分类:
编程语言 时间:
2020-04-05 22:19:08
阅读次数:
102