样例过了为什么全WA了(不用优化都70 QAQ)
查看原帖
样例过了为什么全WA了(不用优化都70 QAQ)
420137
一月气聚楼主2021/10/6 15:42
#include<iostream>
#include<cstdio>
#define maxn 500009
//#define lowbit(x) x&(-x)
#define ll long long

using namespace std;

int n,m;
ll a[maxn];

int lowbit(int i){
   return i&(-i);
}

ll read()
{
   char c=getchar();
   ll ans=0,flag=1;
   while(c<'0' || c>'9')
   {
   	if(c=='-') flag=-1;
   	c=getchar();
   }
   while(c>='0' && c<='9') 
   {
   	ans=(ans<<1)+(ans<<3)+c-'0';
   	c=getchar();
   }
   return ans*flag;
}

void add(int x,ll k)
{
   for(int i=x;i<=n;i+=lowbit(i)) a[x]+=k;
}

ll ask(int x)
{
   ll ans=0;
   for(int i=x;i;i-=lowbit(i)) ans+=a[i];
   return ans;
}

int main()
{
   scanf("%d%d",&n,&m);
   ll last=0,now;
   for(int i=1;i<=n;++i) {
   	now=read();
   	add(i,last-now);
   	last=now;
   }
   for(int i=1;i<=m;++i)
   {
   	int pan,x,y;
   	ll k;
   	scanf("%d",&pan);
   	if(pan==1) {scanf("%d%d%lld",&x,&y,&k); add(x,k); add(y+1,-k);}
   	  else {scanf("%d",&x); printf("%lld\n",ask(x));}
   }
}
2021/10/6 15:42
加载中...