不想 dp 了怎么办?开个新坑吧。
例题1.求区间和
树状数组不香吗,28行解决(bushi 所以懒得打线段树了。
code
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,c[100005];
int lowbit(int x) {return x&(-x);}
void add(int x,int k){
for(int i=x;i<=n;i+=lowbit(i)) c[i]+=k;
}
int ask(int x)
{
int ans=0;
for(int i=x;i;i-=lowbit(i)) ans+=c[i];
return ans;
}
int sum(int l,int r){
return ask(r)-ask(l-1);
}
signed main()
{
scanf("%lld%lld",&n,&m);
for(int i=1,k,a,b;i<=m;i++)
{
scanf("%lld%lld%lld",&k,&a,&b);
if(k) cout<<sum(a,b)<<endl;
else add(a,b);
}
return 0;
}
例题2.区间查改
板子。这次老老实实写线段树。
现在是 15:10,猜猜我码一遍板子要多久qwq