![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树状数组
通信男神杨丽斌
我们不能,不能失去信仰
展开
-
Codeforce 1288 E. Messenger Simulator (思维+树状数组)
题目链接:https://codeforces.com/contest/1288/problem/E题目大意:给定一个1到n的排列,现在有m个操作,每个操作给定一个数x,表示将x移动到排列的第一个,其他位置相对不变,问你每个数,他的位置的最大值和最小值分别是多少?思路:思路应该是模拟操作,并且用数据结构加速操作,如何操作更快呢?因为每次我只移动一个数,其他的数相对位置不会改变,...原创 2020-01-19 12:41:59 · 302 阅读 · 0 评论 -
牛客练习赛56C.小魂和他的数列(dp+树状数组)
题目大意:给定一个n元素的数列,第i个数为Ai,求这个数列中一共有多少个长度为K的子序列是严格递增的。思路:线段树写多了,看见n这么大,感觉不能开k颗线段树呀,那怎么做呀?都忘了还有树状数组了23333dp(i,j)表示以i元素为结尾的,长度为j的严格递增子序列的个数。那么递推式如下:所以就变成如何快速计算比i小且a[k]比a[i]小的dp(k,j-1)的和了。发现...原创 2020-01-01 00:06:35 · 235 阅读 · 0 评论 -
UValive 4329 --树状数组入门
题目链接:https://vjudge.net/contest/238229#problem/D白书上树状数组的例题,刚好学完,正好熟悉一下树状数组的常规操作。对于每个i当裁判时的情况,设从a1到ai-1有ci个小于ai的数,则就有i-1-ci个比ai大的数,从ai+1到an有di个小于ci的数,就有n-i-di个比ai大的数,这样,大数与小数配对,小数与大数配对,就有ci*(n-i-di...原创 2018-10-23 17:37:06 · 177 阅读 · 0 评论 -
POJ3321——树状数组或线段树,映射
题目链接:https://vjudge.net/contest/166934#problem/B这个题并不是常规的树状数组或线段树的题,因为他本身给你的并不是一个线性的序列,而是一棵树。如果单纯的用dfs不断遍历更新,n=100000时间上受不了,又得考虑树状数组或线段树来做这种题。思路是,对每个树上的点,标记一个dfs时间戳,lef[index]表示dfs从点index开始的时间戳,而r...原创 2019-04-01 22:03:24 · 155 阅读 · 0 评论 -
codeforces101B——Buses(线段树或树状数组+离散化)
题目链接:https://codeforces.com/problemset/problem/101/B题目大意:给你很多个公交车的起点和终点,你可以从一个公交车路线上的任何一个点上车,但上车后只能从公交车路线的终点下车,问你从点1到点n有多少种方案。思路对于一个公交车站的终点ti,所有可能的起点为si到ti-1,设dp[i]为到达某个点的方案数,则最终点ti的方案数肯定就是这些可...原创 2019-08-07 20:47:50 · 244 阅读 · 0 评论 -
组队赛3.醉之见面会(莫队+树状数组)
醉之见面会(莫队+树状数组)题目描述:有很多个人需要发言,第i个人的发言时间为ai分钟由于时间有限,需要挑选第l个到第r个小朋友来发言,如何安排他们的发言顺序才能使得他们发言+等待的时间总和最小。比如,如果你安排2,3,5的小朋友一次发言,发言得总时间为2+(3+2)+(5+3+2)=17分钟现在有m个询问,每个询问为[l,r],你要对每个询问进行回答思路:如果需要区间...原创 2019-08-22 15:56:30 · 109 阅读 · 0 评论 -
[codeforces1208D]Restore Permutation(树状数组+二分)
题目链接:https://codeforces.com/contest/1208/problem/D题目大意:有一个1到n的排列,每个数字只出现一次,现在给你一个与原序列有关的s序列,si表示在原序列中,下标小于i且值小于i的元素之和,即现在要你通过si恢复原序列。思路:考虑从后往前推。如果我们要计算最后一位,该怎么计算呢?最后一位的s[i]必然是1到x的一个前缀和,这个x就是...原创 2019-09-04 10:54:29 · 172 阅读 · 0 评论 -
牛客练习赛52.Galahad(树状数组维护区间不相同数的和)
链接:https://ac.nowcoder.com/acm/contest/1084/B来源:牛客网Galahad时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 131072K,其他语言262144K64bit IO Format: %lld题目描述本题推荐BGM:Galahad and Scientific Witchery魔女要测试骑士的能力...原创 2019-09-16 10:58:32 · 252 阅读 · 0 评论 -
2019徐州网络赛I.Query(树状数组+思维)
题目链接:https://nanti.jisuanke.com/t/41391题目大意:给你一个n(1<=n<=1e5)长度数组a,现在有m组询问,每次询问(l,r),你需要回答这个区间有多少对数(i,j),满足aj是ai的倍数。思路:对于一个数ai,ai会对左边多少个数产生贡献呢?没错,如果j<i,且gcd(ai,aj)!=0,那么a[i]就会对j做贡献,也...原创 2019-09-17 17:58:15 · 179 阅读 · 0 评论