社区讨论

树状数组70分求调

P3374【模板】树状数组 1参与者 3已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@mds9ptn5
此快照首次捕获于
2025/08/01 11:32
7 个月前
此快照最后确认于
2025/11/04 03:23
4 个月前
查看原帖
33 个点TLE。
CPP
import java.io.*;
import java.util.*;

public class Main {
  static int n, m;

  static class TreeArr {
    private long[] t = new long[500010];

    private int lowbit(int x) {
      return x & (-x);
    }

    public void add(int x, int y) {
      for (int i = x; i <= n; i += lowbit(i)) {
        t[i] += y;
      }
    }

    public long query(int x) {
      long ans = 0;
      for (int i = x; i > 0; i -= lowbit(i)) {
        ans += t[i];
      }
      return ans;
    }
  }

  public static void main(String args[]) {
    Scanner cin = new Scanner(System.in);
    n = cin.nextInt();
    m = cin.nextInt();

    TreeArr T = new TreeArr();
    for (int i = 1; i <= n; i++) {
      int mem = cin.nextInt();
      T.add(i, mem);
    }

    for (int i = 1; i <= m; i++) {
      int opt = cin.nextInt();
      if (opt == 1) {
        int x = cin.nextInt(), y = cin.nextInt();
        T.add(x, y);
      } else {
        int x = cin.nextInt(), y = cin.nextInt();
        long ans = T.query(y) - T.query(x - 1);
        System.out.println(ans);
      }
    }
  }
}

注:用 java 写的,不知道是因为 java 像 python 那样效率比较低就 T 了还是单纯代码有问题。QWQ

回复

4 条回复,欢迎继续交流。

正在加载回复...