专题训练8总结

Posted bxd123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了专题训练8总结相关的知识,希望对你有一定的参考价值。

这个专题主要学了两个数据结构 一个是线段树 一个是树状数组

线段树主要求区域操作

建树、单点查询、单点修改、区间查询、区间修改。

代码较为复杂 参考模板

 

树状数组  用于求和效率很高 进阶则为区域修改同一个值十分方便

主要有两种操作: 单点修改 区域查询(基础)  区域查询的差值即为单点查询   也比枚举算法快很多

                          区域修改  单点查询 (进阶)

 

1.敌兵布阵  

线段树入门题   但是采用树状数组十分方便

很简单没什么好说的

 

2.Color the ball

一开始用线段树   debug一个memset一下午

区域修改  单点查询 树状数组秒解

核心:       update(a,1);   

              update(b+1,-1);

 

3.frosh week

题意:一群人排好队  每个人有自己的序号 (乱序)  只能两辆交换 求最小交换次数使得序号从小到大排序好

学会了逆序数   和冒泡排序的交换次数一样

可以用树状数组来求    

归并排序也可以  还没学

 

4.See you~

管理一个矩阵 里面有书  有四种操作  查询  增加 减少 移动

一开始采用离散化写了很久

原来为二维树状数组

sum(x1,y1)为 矩阵 1,1   x1,y1 的所有元素和    

同时  有一个细节是 树状数组的下标不能为0!!!!!!

这题范围为0~n-1  所以所有数据自增1

 

5.Stars

处理数据的方式很巧妙 

因为题目输入是按照y升序排列好的 当y相同时按照x升序  所以 y完全忽略 !!!!!!!

 

6.MooFest

母牛问题 

两个树状数组的应用太厉害了 

求次牛到之前所有牛的距离之和值得学习

这题对思维很有启发 

 

7.Matrix

区域修改 单点查询

 

总的来说这个专题较为简单

继续加油!

 

以上是关于专题训练8总结的主要内容,如果未能解决你的问题,请参考以下文章

搜索专题训练 B - 棋盘问题

专题训练 1001 求全排列

数据并行:提升训练吞吐的高效方法 |深度学习分布式训练专题

《剑指offer》专题—算法训练 day02

《剑指offer》专题—算法训练 day01

2018.8.28训练总结