zoukankan      html  css  js  c++  java
  • 专题训练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

    区域修改 单点查询

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

    继续加油!

  • 相关阅读:
    修改MySQL表varchar字段的小实验
    MySQL5.6同步指定数据库
    Redis安装
    MongoDB安装
    RMAN备份注意事项
    Oracle Data Guard Protection Modes
    Linux Shell 文本处理工具
    ORACLE 收缩表空间的数据文件
    crfclust.bdb导致磁盘满
    undo管理
  • 原文地址:https://www.cnblogs.com/bxd123/p/10358508.html
Copyright © 2011-2022 走看看