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

    区域修改 单点查询

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

    继续加油!

  • 相关阅读:
    包含中文的js文件在从cdn搞到本地时造成的问题;
    查询杀死进程
    二维码显示在网页上
    二维码生成器和解析器-java
    N个任务,分配给M个人,那么每个人得到的任务数量----总结经验
    js中文转换成拼音
    Grails连接mysql数据库
    Grails框架+Intellij IDEA工具,写了一个对字符串进行转码,包括纯js转成Base64格式
    java冒泡排序
    对文字简单的加密解密
  • 原文地址:https://www.cnblogs.com/bxd123/p/10358508.html
Copyright © 2011-2022 走看看