70pts求助
查看原帖
70pts求助
1002517
Adorable_楼主2024/7/17 11:15

记录,WA了三个点,感觉很神奇

#include<bits/stdc++.h>
using namespace std;

#define int long long
#define lowbit(x) x&(-x)
const int N = 5e5+5;
int a[N],t[N],ans,n,m,l,r,c;

void add(int loc,int x) //给loc加上x 
{
	for(int i = loc;i<=n;i+=lowbit(i))
		t[i]+=x;
}
int sumout()
{
	int sum = 0;
	for(int i = r;i;i-=lowbit(i)) sum+=t[i];
	for(int i = l-1;i;i-=lowbit(i)) sum-=t[i];
	return sum;
}
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0), cout.tie(0);
	cin>>m>>n;
	for(int i = 1;i<=n;++i)
	{
		int a;
		cin>>a;
		add(i,a);//输入储存 
	}
	for(int i = 1;i<=m;++i)
	{
		cin>>c>>l>>r;
		if(c == 1)
			add(l,r);//l改为r 
		else
			cout<<sumout()<<endl;//输出l~r前缀和 
	}
	return 0;
}

求大佬帮调调

2024/7/17 11:15
加载中...