树状数组
YuanSnowing
未知苦处
展开
-
【HDU6609 Find the answer】线段树||树状数组维护前缀和
传送门 官方题解是这么说的: 对于第i个位置,怎样选择数字才会使满足条件情况下选择数字数目最少呢?很容易想到,需要选择前i1个数中较大的数字,使其变为0。 基于这个思想,如果我们对于每个位置i都暴力去找最大的前几个数,显然会TLE! 可以注意到,题目可以转化为前i-1个数中最多选出多少个数字和W[i]相加使得其和小于等于m(很容易想到,选择较小的数才会使选的数最多)。转化之后就很容...原创 2019-07-30 10:04:57 · 289 阅读 · 1 评论 -
【ZOJ 2112 Dynamic Rankings】动态区间第k大:树状数组+主席树
思路纯属个人YY,如有错误请各位dalao不吝赐教。Orz 萌新第一次接触这么阔怕的东西,瑟瑟发抖啊嘤嘤嘤。。。 ZOJ 2112 Dynamic Rankings 题目大意就是,求区间第k大,支持单点修改。 其中,每个元素a[i]的范围…1,000,000,0001,000,000,0001,000,000,000 首先,区间第k大,那肯定是要用传说中的主席树了。 (刚刚接触主席树的萌新持续瑟瑟...原创 2019-07-25 13:21:25 · 688 阅读 · 2 评论 -
【HDU6635 Nonsense Time】树状数组维护最长上升子序列
题目大意 在一个数列ai里依次激活某个位置,求每次激活后的最长上升子序列(LIS)。 思路 可以倒着找。 先找出全部数列的LIS,然后倒着令数列逐位失活,如果失活的那一位在LIS里,就重新找一遍LIS,否则就LIS长度不变。 现在问题就是,怎么找LIS。 以前都是用dp的,这次用树状数组,居然也挺好用的。 树状数组每个结点在变成树状之前,都表示以那个数字结尾的LIS。树状数组维护前缀最大值。 每次...原创 2019-08-08 10:37:43 · 233 阅读 · 0 评论