Dignite's Blog!

树状数组进阶练习

通过这些练习,我们能对树状数组有更深刻的理解。这里给题目排的顺序是难度不严格递增的。 P4939 Agent2 这道题是典型的树状数组+差分。我们在开始咕的天数打上标记 $+1$ ,结束咕的那天的后一天打上标记 $-1$ ,那么这段天数就代表了多了一个咕咕咕。 P5057 [CQOI2006]简单题 这题同样也是树状数组的标签。注意,树状数组能处理的是和前缀有关的问题。不论是...

T244841 分配学号 题解

原题传送门 (鸡尾酒的原创题!请谨慎转载) 题目描述 给定一些数,其中有一些相同的数字,现在需要修改其中的一些数字(只增不减),并且使得修改后所有数字的总和减去原来所有数字的总和最小,求按这样的要求修改有多少种不同的方式。 思考 要想知道怎样修改,我们就要先知晓最终的答案是那几个数。让我们来观察几组样例寻找规律。 请注意,这里的样例中的数字都是从小到大给出的,便于后续的观察与计算。...

单调栈学习笔记

以洛谷 P5788 【模板】单调栈 为例。 题目描述 - 单调栈的基本作用 题目很简单:给定一个数列,求每一个数往后看第一个比它大的数是谁。 我们来看样例: 5 1 4 2 3 5 显而易见,对于第一个数字 1 ,第一个比它大的数字是 4 ,排在第二位;对于第二个数字 4 ,第一个比它大的数字是 5 ,排在第五位……以此类推。 深入理解单调栈 下面让我们把数据可视化。 首...

树状数组自学笔记

1 树状数组能解决什么问题? 先看例题 P3374 【模板】树状数组 1 。对于一个数列,我们需要支持以下两个操作: 将某一个数加上 $x$ ; 求出某区间每一个数的和。 对于这道题,如果用普通的方法暴力枚举,我们可能只会拿到70%的分数。然而如果利用树状数组,我们就能获得满分。可见:树状数组能够支持动态修改并查询前缀和,从而求出某区间的和。 2 树状数组的结构是怎样的? 我...

© Dignite. 保留部分权利。 由  提供CDN加速。

浙ICP备2023032699号 | 使用 Jekyll 主题 Chirpy