Đăng nhập để hỏi chi tiết


Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
#include<bits/stdc++.h>
#define ll long long
#define db double
#define str string
#define fi first
#define se second
#define mod 1000000007
#define maxn 100001
using namespace std;
ll bit[maxn];
ll n;
ll get(ll t)
{
ll s=0;
while(t>0)
{
s+=bit[t];
t-=t&-t;
}
return s;
}
void update(ll x, ll t)
{
while(x<=n)
{
bit[x]+=t;
x+=x&-x;
}
}
int main()
{
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
ll q;
cin>>n>>q;
ll t;
for(ll i=1;i<=n;i++)
{
cin>>t;
update(i,t);
}
ll t1,t2;
while(q>0)
{
q--;
cin>>t>>t1>>t2;
if(t==1) update(t1,t2);
else cout<<get(t2)-get(t1-1)<<endl;
}
}
Hãy giúp mọi người biết câu trả lời này thế nào?
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int main() {
ll n,m;
cin>>n>>m;
vector<ll> a(n);
for (ll i=0;i<n;i++) {
cin>>a[i];
}
while (m--) {
ll t,u,v;
cin>>t>>u>>v;
if (t==1) {
ll z;
cin>>z;
for (ll i=u-1;i<v;i++) {
a[i]+=z;
}
} else {
ll s=0;
for (ll i=u-1;i<v;i++) {
s+=a[i];
}
cout<<s<<"\n";
}
}
return 0;
}
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin