p1358

Posted qywyt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了p1358相关的知识,希望对你有一定的参考价值。

这是一道二维树状数组模板题。

需要注意的可能只有这些xy有可能为零。那每次输入之后全部++,相当于全部向右下角移了一位。

那就直接给代码了呦。

using namespace std;
int c[1050][1050],n,m;
int i,f;
int a1,b1,a2,b2,tx,ty,tk;
int ans;
int lowbit(int x)
{
  return x&(-x);
}
int sum(int x,int y)
{
    ans=0;
    for(i=x;i>=1;i-=lowbit(i))
        for(f=y;f>=1;f-=lowbit(f))
            ans+=c[i][f];
    return ans;
}
void add(int x,int y,int v)
{
    for(i=x;i<=n;i+=lowbit(i))
        for(f=y;f<=n;f+=lowbit(f))
            c[i][f]+=v;
}
int main()
{
ios::sync_with_stdio(false);
//freopen("123.in","r",stdin);
//freopen("123.out","w",stdout);
    cin>>n;
    for(;;)
    {
        cin>>m;
        if(m==3)
            return 0;
        if(m==1)
        {
            cin>>tx>>ty>>tk;
            tx++;
            ty++;
            add(tx,ty,tk);
        }
        if(m==2)
        {
            cin>>a1>>b1>>a2>>b2;
            a1++;
            b1++;
            a2++;
            b2++;
            cout<<abs(sum(a2,b2)-sum(a1-1,b2)-sum(a2,b1-1)+sum(a1-1,b1-1) )<<endl;
        }
    }
}

 

以上是关于p1358的主要内容,如果未能解决你的问题,请参考以下文章

洛谷——P1358 扑克牌

微信小程序代码片段

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板