寂寞超短裙

文章
6
资源
0
加入时间
3年0月21天

[线段树] codeforces 558E. A Simple Task

题意: 给一个长度n的字符串,q次操作,每次操作把[l,r]排序,k=0非递增,k=1非递减。 题解: 采用计数排序的复杂度是O(n∗q)O(n*q),无法通过,但有所启示。 可以看出计数就是区间求和,排序就是区间更新,可以用线段树维护。 做法是建立26棵线段树,第i棵树维护第i个字母的位置信息。 计数时,在26棵线段树内分别做一次查询,排序时根据递增还是递减,把相应的区间赋值为相应的字