2 条题解

  • 0
    @ 2025-3-23 9:43:26
    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int N = 1e6 + 10, INF = 0x3f3f3f3f, MOD = 1E9 + 7;
    int n, m, a[N], s[N];
    
    int main(int argc, char* argv[]) {
        cin >> n >> m;
        for (int i = 1; i <= n; i++)
            cin >> a[i], s[i] = s[i - 1] + a[i];
        int l,r;
        while (m--) {
            cin >> l >> r;
            cout << s[r] - s[l - 1] << endl;
        }
        return 0;
    }
    
    • 0
      @ 2024-9-11 15:42:52
      $$\begin{array}{c} &一维前缀和:S_k = \sum_{i = 1}^k{a_i};\\ &\sum_{i = l}^{r}{a_i} = S_{r}-S_{l-1}\\ \\ &二维前缀和:S_{i,j} = \sum_{i = 1}^n \sum_{j = 1}^n a_{i,j}; \\ &\sum_{i = x_1}^{x_2} \sum_{j = y_1}^{y_2} {a_{i,j}} = S_{x_2,y_2}-S_{x_1-1,y_2}-S_{x_2,y_1-1}+S_{x_1-1,y_1-1} \\ \\ &一维差分:D_i = a_i-a_{i-1}\\ &a_k = \sum_{i = 1}^k{D_i}\\ \\ &二维差分:D_{i,j} = a_{i,j}-a_{i-1,j}-a_{i,j-1}+a_{i-1,j-1}\\ &D[x_1][y_1] + = c;\\ &D[x_1][y_2+1] - = c;\\ &D[x_2+1][y_1] - = c;\\ &D[x_2+1][y_2+1] + = c;\\ \end{array} $$
      • 1

      信息

      ID
      320
      时间
      1000ms
      内存
      512MiB
      难度
      3
      标签
      递交数
      193
      已通过
      98
      上传者