今天上午是树状数组,下午是RMQ算法,都不太熟练,贴段代码
#include
using namespace std;
int x,y,k,n,m,t;
int p[700005],a[700][700];
int lowbit(int x)
{
return x&(-x);
}
void add(int i)
{
int q=i;
while(q0)
{
ans+=p[o];
o-=lowbit(o);
}
return ans;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
<pre><code> for(int j=1;j<=m;j++)
{
scanf("%d",&a[i][j]);
add(i);
}
}
for(int i=1;i<=m;i++)
{
scanf("%d",&t);
if(t==1)
{
scanf("%d%d",&x,&k);
while(x<=n)
{
p[x]+=k;
x+=lowbit(x);
}
}
else
{
scanf("%d%d",&x,&y);
printf("%d\n",sum(y)-sum(x-1));
}
}
return 0;
</code></pre>
}
你的blog每次都很忽悠
能写清楚点吧
自己说的代码是最重要的,当时我还叫你不要反悔
你的blog每次都很忽悠
能写清楚点吧