zoukankan      html  css  js  c++  java
  • 2018年5月31号(树状数组)

      今天,老师讲了树状数组,本蒟蒻有点懵懵懂懂,但是基本模板我还是记到的;

      先是讲下原理:

      今晚学了树状数组…所以呢我来总结一下自己对它的理解… 
      这里写图片描述 
      这图是在网上随便找找的… 
      由图可以得出: 
      c1=a1; 
      c2=c2+c1=a1+a2; 
      c3=a3; 
      c4=c4+c3+c2=a1+a2+a3+a4; 
      c5=a5; 
      c6=c6+c5=a5+a6; 
      c7=a7; 
      c8=c8+c7+c6+c4=a1+a2+a3+a4+a5+a6+a7+a8;

      前k项和: 
      s1=c1=a1; 
      s2=c2+c1=a1+a2; 
      s3=c3=a3; 
      s4=c4+c3+c2=a1+a2+a3+a4; 
      s5=a5; 
      s6=c6=c6+c5=a5+a6; 
      s7=c7=a7; 
      s8=c8+c7+c6+c4=a1+a2+a3+a4+a5+a6+a7+a8;

      上面那张图你可能会看不懂,接下来是一张好图:

      !

      那些数字的边上上是二进制,我们就是从他的二进制考虑;

      1.lowbit

    1 long long er(long long k)
    2 {
    3     return k&-k;
    4 }
    View Code

      2.更新

    1 void add(long long x,long long y)
    2 {
    3     while(x<=n)
    4     {
    5         jie[x]+=y;
    6         x+=er(x);
    7     }
    8 }
    View Code

      3.求值

     1 long long qiu(long long x)
     2 {
     3     long long tot=0;
     4     while(x!=0)
     5     {
     6         tot+=jie[x];
     7         x-=er(x);
     8     }
     9     return tot;
    10 }
    View Code

    over

    Keep on going never give up.   勇往直前, 决不放弃!
  • 相关阅读:
    zz 通过INFORMATION_SCHEMA.INNODB_TRX、INNODB_LOCKS、INNODB_LOCK_WAITS 三个表获取事务与锁的信息
    binlog在并发状态下的记录
    关于mysql的metadata lock
    测试相关
    数组
    方法、递归算法
    顺序、选择、循环结构
    Scanner
    包机制、javadoc
    变量、常量
  • 原文地址:https://www.cnblogs.com/zssmg/p/9119354.html
Copyright © 2011-2022 走看看