0
已解决
陈正朔
初级光能
初级光能
题目描述 Description
给定数列 a[1],a[2],…,a[n],你需要依次进行 q个操作,操作有两类:
1 i x:给定 i,x,将 a[i] 加上 x;
2 l r:给定 l,r,求 ∑ri=la[i] 的值(换言之,求 a[l]+a[l+1]+⋯+a[r]的值)。
输入描述 Input Description
第一行包含 2个正整数 n,q,表示数列长度和询问个数。保证 1≤n,q≤106。
第二行 n 个整数 a[1],a[2],…,a[n],表示初始数列。保证 |a[i]|≤10^6。
接下来 q行,每行一个操作,为以下两种之一:
1 i x:给定 i,x,将 a[i] 加上 x;
2 l r:给定 l,r,求 ∑ri=la[i] 的值。
保证 1≤l≤r≤n, |x|≤10^6 。
输出描述 Output Description
对于每个 2 l r 操作输出一行,每行有一个整数,表示所求的结果。
为什么,没有TLE,直接WA0了
#include<iostream>
#pragma GCC optimize(3)
#pragma GCC optimize(2)
#include<cstdio>
using namespace std;
long long n,q,a[1000005],sum;
int main(){
scanf("%lld%lld",&n,&q);
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]);
}
while(q--){
long long f,l,r;
sum=0;
scanf("%lld%lld%lld",&f,&l,&r);
if(f==1) a[l]+=r;
else{
for(int i=l;i<=r;i++){
sum+=a[i];
}
printf("%lld\n",sum);
}
}
return 0;
}
陈正朔在2021-03-16 18:10:00追加了内容
没人就结贴
0
0
0
0