zoukankan      html  css  js  c++  java
  • 树状数组笔记

    鸣谢:QYQYQYQYQYQ。

    ______________________________________分割线___________________________________________

    更优秀的树状数组模板

    struct szsz{
        int tree[maxn];
    void add(int pos,int num) {for(int i=pos;i<=n;i+=i&-i) tree[i]+=num;}
    int query(int pos)
    {
        int res=0;
        for(int i=pos;i;i-=i&-i) res+=tree[i];
        return res;
    }
    };

    以及“把树状数组的操作封装在结构体里”的用法[可以看洛谷板子丫]

    int main(){

       a.add(pos,num);

       int ans=a.query(pos);

       return 0;

    }

    ______________________________________分割线___________________________________________

    1.树状数组可以更快地进行查询、取和、更新等操作——它的“树”的身份(暂时)并没有体现出更大的用途。

    2.P2345奶牛集会[复制自聊天记录]

     我刚刚从题解里面发现了一个神奇的小技巧 就是可以用分类讨论来处理看似复杂的分段函数 然后接下来的任务只是推出这个函数的式子(这个式子甚至可以是树状数组的模板) 

    3.P2717寒假作业[储备知识:树状数组求逆序对]

     °既严谨又美丽的推理过程呐!

     °注意建树的逻辑[所谓深刻的好题]

     °怎么判断用特殊方法而不是用暴力树状数组求和:

    算一算时间复杂度,两个结论如下。

    2^n,大约n<=20;

    n方,大约n<=8000

     °关于我是怎么算的:2^100000=(2^10)^10000 约等于 (10^3)^(10^4)=10^7

     °以及现实是:(10^3)*(10^4)=10^7

     °lower_bound的使用:

    妙啊题解

  • 相关阅读:
    激光雷达的数学模型
    TX2刷机踩坑
    rplidar S1测试
    cartographer 调参(2)-ROS API 文档
    ROS 包制作
    Python 文件操作
    V-REP远程控制--Python版
    V-REP 喷涂仿真
    Jeston TX2 备份
    Anaconda jupyter-notebook 添加kernel
  • 原文地址:https://www.cnblogs.com/nishida-rin/p/12271143.html
Copyright © 2011-2022 走看看