
树状数组
文章平均质量分 56
CCloth
这个作者很懒,什么都没留下…
展开
-
[好题][思维]Paimon Sorting 2021年ICPC南京站D
具体做法是看前i-1个数的最大值,如果a[i]小于等于max[i-1],那么第一轮遍历时a[1]就一定是max[i-1]了,所以第一轮两数组操作相同,交换次数也相同,实际上第二轮到第i-1轮都完全一样,差别在于长度为i的数组还需要进行第i论遍历,此时前i-1个数都已经升序排列了,需要交换的次数就是前i-1个数中去重后大于a[i]的数个数,这个值用树状数组很容易获得。题目给出了一段用于排序的代码,现在对于一个长度为n的数组,需要输出n个数,分别表示对前i个数进行排序需要进行多少次交换操作。原创 2022-11-03 22:18:07 · 993 阅读 · 0 评论 -
[树状数组][二分]特殊堆栈 PTA L3-002
堆栈是一种经典的后进先出的线性结构,相关的操作主要有“入栈”(在堆栈顶插入一个元素)和“出栈”(将栈顶元素返回并从堆栈中删除)。本题要求你实现另一个附加的操作:“取中值”——即返回所有堆栈中元素键值的中值。给定 N 个元素,如果 N 是偶数,则中值定义为第 N/2 小元;若是奇数,则为第 (N+1)/2 小元。输入格式:输入的第一行是正整数 N(≤10^5)。随后 N 行,每行给出一句指令,为以下 3 种之一:Push keyPopPeekMedian其中key是不超过10^5...原创 2022-03-22 21:31:50 · 266 阅读 · 0 评论 -
树状数组模板总结
树状数组是一个能够快速解决单点修改、区间查询的数据结构,具有代码短、不容易出bug的优点。树状数组能解决的问题线段树都能解决,但线段树能解决的问题树状数组大部分都解决不了,例如更新并维护区间最值问题。以acwing1264为例,介绍常用模板:#include <iostream>#include <cstdio>#include <algorithm>#define lowbit(x) (x&-x)//这里一定要加括号,防止运算优先级不同带来的问题原创 2021-08-22 09:28:19 · 489 阅读 · 1 评论