直接for(int i=x;i<=n;i+=x)add(i,y);最坏是o(n^m)=1e10,会爆掉所以需要用个lazy[]进行分块统计小于sqrt(n)复杂度较大的那一部分y,最后在算range_sum(x,y)的时候加上[x,y]中lazy[]数组的贡献 #pragma GCC optimize(2) #include <bits/stdc++.h> #define endl '\n' #define ll long long using namespace std; ll tree[100050],lazy[100050],n,m,ans; ll lowbit(ll ...