@[wenza03](/space/show?uid=29669)
你这样写一次操作就是O(n)的,不T才怪。
by Smile_Cindy @ 2019-02-22 19:46:19
你这是在假吧?
by 142857cs @ 2019-02-22 19:46:44
你用树状数组了吗?
lowbit都没调用一下
by liuyifan @ 2019-02-22 19:47:26
@[wenza03](/space/show?uid=29669)
```cpp
#include <bits/stdc++.h>
#define lowbit(i) (i&-i)
using namespace std;
const int MAX_N=500005;
int A[MAX_N];
int bit[MAX_N];
int n,m;
void modify(int i,int x)
{
while(i<=n)
{
bit[i]+=x;
i+=lowbit(i);
}
}
int query(int i)
{
int res=0;
while(i>0)
{
res+=bit[i];
i-=lowbit(i);
}
return res;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>A[i];
for(int i=1;i<=n;i++)modify(i,A[i]),modify(i+1,-A[i]);
while(m--)
{
int opt;
cin>>opt;
if(opt==1)
{
int l,r,x;
cin>>l>>r>>x;
modify(l,x);
modify(r+1,-x);
}
else
{
int i;
cin>>i;
cout<<query(i)<<endl;
}
}
return 0;
}
```
by Smile_Cindy @ 2019-02-22 19:49:23
楼主这是差分吧...
by AC_Automation @ 2019-02-22 19:50:48
噢,谢谢楼上大佬
by wenza03 @ 2019-02-22 19:53:55
@[Alpha](/space/show?uid=87058) 谢谢
by wenza03 @ 2019-02-22 19:54:35
@[wenza03](/space/show?uid=29669) cin、cout的速度很慢,特别是在几十万数据的时候,可以用scanf、printf,或~~玄学~~快读等
by wisdom_grass @ 2019-02-22 20:06:44
@[智慧草](/space/show?uid=23842) 谢谢大佬qwq
by wenza03 @ 2019-02-22 20:08:08
@[wenza03](/space/show?uid=29669) 我是蒟蒻呀 ~~还有我没看懂您的算法,我好菜~~
by wisdom_grass @ 2019-02-22 20:11:07