求错误qwq
  • 板块学术版
  • 楼主Autism_ever
  • 当前回复7
  • 已保存回复7
  • 发布时间2021/1/15 20:41
  • 上次更新2023/11/5 04:48:13
查看原帖
求错误qwq
225388
Autism_ever楼主2021/1/15 20:41

P3368不知道哪里错了,求助

#include<bits/stdc++.h>
using namespace std;
int n, m, c[500010], a[500010];
int lowbit(int x)
{
	return x&(-x);
}
int getSum(int i)
{
	int sum=0;
	while(i>0)
	{
    	sum+=c[i];
    	i-=lowbit(i);
	}
	return sum;
}
void update(int i,int v)
{	
	while(i<=n)
	{
		c[i]+=v;
		i+=lowbit(i);
	}	
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		update(i,a[i]-a[i-1]);
	}
	for(int i=1;i<=m;i++)
	{
		int a, x, y, k;
		cin>>a;
		if(a==1)
		{
			cin>>x>>y>>k;
			update(x,k);
			update(y+1,-k);
		}
		else if(a==2)
		{
			cin>>x;
			cout<<getSum(x)<<endl;
		}
	}
	return 0;
}

2021/1/15 20:41
加载中...