题目大意:
给定一个序列和两种操作:
Q操作,表示这是一条询问操作,询问区间[a,b]当中的元素的最大值是多少。
U操作,表示这是一条更新操作,要求把元素A的值更改为B。
一棵具有n个节点的树,一开始,每个节点上都有一个苹果。现在给出m组动态的操作:(C,i)是摘掉第i个节点上面的苹果(若苹果不存在,则为加上一个苹果),(Q,i)是查询以第i个节点为根的子树有几个苹果(包括第i个节点)。
要求设计这样一个数据结构,支持下列操作:
1.add(x,y,a),对二维数组的第x行,第y列加上a。
2.sum(l,b,r,t),求所有满足l<=x<=r,b<=y<=t,的数组元素的和。
给出一个序列和四种操作:
(1) Add i j ,i和j为正整数,第i个元素增加j(j不超过30);
(2) Sub i j ,i和j为正整数,第i个元素减少j(j不超过30);
(3) Query i j ,i和j为正整数,i<=j,表示询问第i到第j个元素的和;
(4) End 表示结束,这条命令在每组数据最后出现;
执行操作并对(3)进行答复。
Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀)。
字典树
1251、1298
线段树
1754、1698、3265
树状数组
1166、2492
单调栈
1506
搜索
2485、3696
贪心
3697、2491
二分查找
1969
模拟
1972、3269、2487、3262、4269
简单题
1194、1050、2708、1032、1012、1013、1334
动态规划
1955
最小生成树
2489
单源最短路
3268
计算几何
3264
枚举
3699
KMP
1686
AC自动机
2222、3965