![](https://img-blog.csdnimg.cn/8915ef62129d483390dc7ca5b250164d.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
寒假集训专题二 树
树形结构
斐林试剂捏
这个作者很懒,什么都没留下…
展开
-
【树形结构】测试题D - A Simple Task
题意一个长度为n的字符串,有q条查询。两种操作:1. i,j,1 把字符串从i到j的部分升序排列2. i,j,0把字符串从i到j的部分降序排列求q次查询之后字符串的结果思路训练赛的时候这题没想出来怎么写,下来查了查题解。然后分析一波,终于理解了。就是建立26棵线段树,对应每个字母,负责记录每个字母出现的位置。每个T内ans记录的就是该字母出现的位置,而cnt统计我们要操作的那部分的那个字母出现了几次,然后因为要对那个区间更新,所以对这个区间可以先用0覆盖,然后再根据c原创 2022-01-29 15:44:38 · 1091 阅读 · 0 评论 -
【树形结构】训练题N - Ultra-QuickSort
题意给一个无序的数组,只能交换相邻两个数,变换成从小到大的数列,问最少需要多少次思路归并排序求逆序数,好像是一道模板题捏。(结果居然因为数组开小了而RE了一次)代码#include<iostream>#include<cmath>#include<stack>#include<map>#include<queue>#include<cstdio>#include<vector>#inclu原创 2022-01-27 23:11:24 · 630 阅读 · 0 评论 -
【树形结构】训练题M - 维护序列
题意一种序列,三种操作。1.从t到g 每一个乘c2.从t到g 每一个加c3.查询区间和思路这一题的变化在于要注意取模。其次,对于乘和加,需要放置两个标记,下放lazy的时候写成一个pushdown,并且做乘运算的时候,加法lazy也要有相应的改变。还有就是lazy和ans值的改变与传统线段树模板的不同代码#include<iostream>#include<cmath>#include<stack>#include<m..原创 2022-01-27 21:38:39 · 566 阅读 · 0 评论 -
【树形结构】训练题E - Can you answer these queries V
题意同样是求字段最大和 不过要求是i在[x1,y1]之间,j在[x2,y2]之间。思路首先是两大类情况讨论一、y1<x2二、y1>=x2其次就是一些缩短时间的方法:快读,规避掉数组读入,使用位运算,在每个函数结束后加上return(日常tle太难受了)代码#include<iostream>#include<cmath>#include<stack>#include<map>#include<queu原创 2022-01-26 22:44:03 · 277 阅读 · 0 评论 -
【树形结构】训练题G - Can you answer these queries IV
题意一个序列,要求完成两种操作1.要求从x到y开放2.求和思路这题主要的问题才tle风险。首先的话,开方开到1的话后面开放就不变,不用再开了。但是不知道为什么明明这样操作了但是还是报了tle最后发现是输入数组的问题,顺便加了快读函数,做了一些相应的优化代码#include<iostream>#include<cmath>#include<stack>#include<map>#include<queue>原创 2022-01-26 18:47:02 · 401 阅读 · 0 评论 -
【树形结构】训练题C - Can you answer these queries III
题意在原来I的基础上 增加了单点更新操作思路和原来的A题基本一直,只需要在写一个单点更新的分函数就好了,还是比较裸的板子,除了一开始脑子一抽忘记把结构体的所有值都要更新()代码#include<iostream>#include<cmath>#include<stack>#include<map>#include<queue>#include<cstdio>#include<vector>原创 2022-01-25 23:19:31 · 78 阅读 · 0 评论 -
【树形结构】训练题A - Can you answer these queries I
题意就是要求一个区间的连续的最大字段和思路线段树,注意用结构体建树来的会更方便一些代码#include<iostream>#include<cmath>#include<stack>#include<map>#include<queue>#include<cstdio>#include<vector>#include<cstring>#include<algorithm原创 2022-01-25 22:52:11 · 55 阅读 · 0 评论 -
【树形结构】训练J - A Simple Problem with Integers
题意要求完成两个操作1.C abc 从a到b都加上c2.Q ab 计算从a到b的和思路线段树的基本操作。注意要使用懒更新:lazy标记的清除和更新以及树的数组大小要开原始数组的4倍原创 2022-01-25 15:48:13 · 69 阅读 · 0 评论