ybt OJ求教
  • 板块学术版
  • 楼主x1489631649
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/7/11 15:22
  • 上次更新2024/7/11 17:55:31
查看原帖
ybt OJ求教
780505
x1489631649楼主2024/7/11 15:22

1538:清点人数 我的代码

#include<bits/stdc++.h>
using namespace std;
int c[500005],a[500005];
int n,m;
int lowbit(int x)
{
	return (-x)&x;
}
void update(int x,int k)
{
	for(;x<=n;x+=lowbit(x))
		c[x]+=k;
}
int sum(int x)
{
	int s=0;
	for(;x;x-=lowbit(x))
		s+=c[x];
	return s;
}
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
		update(i,a[i]);
	}
	for(int i=1;i<=m;i++)
	{
		char x;
		int y,z;
		scanf("%c",&x);
		if(x=='A')
		{
			scanf("%d",&y);
			printf("%d\n",sum(y));
		}
		else if(x=='B')
		{
			scanf("%d%d",&y,&z);
			update(y,z);
		}
		else{
			scanf("%d%d",&y,&z);
			update(y,-z);
		}
		scanf("%c",&x);
	}
	return 0;
}

样例通过,全部是WA

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