3.4
试试平板,但是笔有点拉了,,写的好丑
复习的内容比较简单的就随便放在这里了

然后练手LUOGUP2068,单点修改区间查询没有初始值,其实就是挺裸的树状数组,但是先复习线段树
#include<bits/stdc++.h>
using namespace std;
#define mid ((l+r)>>1)
#define int long long
const int N=4e5+7;
int n,w;
int a[N];
int mark[N];
void add(int x,int l,int r,int k)
{
a[x]+=(r-l+1)*k;
mark[x]+=k;
return ;
}
void push(int x,int l,int r)
{
add(x<<1,l,mid,mark[x]);
add(x<<1|1,mid+1,r,mark[x]);
mark[x]=0;
return ;
}
void pl(int x,int l,int r,int s,int e,int k)
{
if(r<s||l>e)
return ;
if(s<=l&&e>=r)
{
add(x,l,r,k);
return ;
}
push(x,l,r);
pl((x<<1),l,mid,s,e,k);
pl((x<<1|1),mid+1,r,s,e,k);
a[x]=a[x<<1]+a[x<<1|1];
return ;
}
int query(int x,int l,int r,int s,int e )
{
if(l>e||r<s)
return 0;
if(l>=s&&r<=e)
return a[x];
push(x,l,r);
return query((x<<1),l,mid,s,e)+query((x<<1|1),mid+1,r,s,e);
}
signed main()
{
ios::sync_with_stdio(false);
cin>>n>>w;
while(w--)
{
char c;
int q,e;
cin>>c>>q>>e;
if(c=='x')
{
pl(1,1,n,q,q,e);
}
else
{
cout<<query(1,1,n,q,e)<<endl;
}
}
return 0;
}
今天还找到一个有意思的暴力小题
P4924 [1007] 魔法少女小Scarlet

浙公网安备 33010602011771号