Gravatar
AntiLeaf
积分:3393
提交:1527 / 4369

Gravatar
Hzoi_chairman
积分:2419
提交:931 / 2223
回复 @叶子の宿敌 :
现在把你自己也烧了吧

Gravatar
AntiLeaf
积分:3393
提交:1527 / 4369
那时太小不懂事,看见情侣就想烧......

Gravatar
皮波Forever
积分:454
提交:115 / 167
单身狗之歌配上铃儿响叮当的调贼好听

Gravatar
SOBER GOOD BOY
积分:2028
提交:588 / 930
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=1010;
int t,n,q;
int c[maxn][maxn]={0};
int lowbit(int);
int getsum(int ,int);
int gengxin(int,int,int);
char Getchar();
void Init();
int main()
{
scanf("%d",&t);
for(int i=1;i<=t;i++)
{
Init();
}
return 0;
}
void Init()
{
scanf("%d%d",&n,&q);
for(int i=1;i<=q;i++)
{
char ch=Getchar();
if(ch=='C'){
int x1,x2,y1,y2;
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
gengxin(x1,y1,1);
gengxin(x2+1,y2+1,1);
gengxin(x2+1,y2,-1);
gengxin(x2,y2+1,-1);
}
if(ch=='Q'){
int x1,y1;
scanf("%d%d",&x1,&y1);
int k=getsum(x1,y1);
printf("%d\n",k%2);
}
}
memset(c,0,sizeof(c));
}
char Getchar()
{
char ch;
while(ch=getchar(),ch!='C'&&ch!='Q');
return ch;
}
int lowbit(int x)
{
return x&-x;
}
int getsum(int x,int y)
{
int tot=0;
for(int i=x;i>0;i-=lowbit(i))
for(int j=y;j>0;j-=lowbit(j))
tot+=c[i][j];
return tot;
}
int gengxin(int x,int y,int z)
{
for(int i=x;i<=n;i+=lowbit(i))
for(int j=y;j<=n;j+=lowbit(j))
c[i][j]+=z;
}

Gravatar
liu_runda
积分:2890
提交:1014 / 2190
建了两个树状数组,一个记录第i只单身狗到目前被攻击的次数,一个记录第i只单身狗到目前受到的伤害吨数。
我们其实可以认为,第i只单身狗每被攻击一次就会回血d[i]。
所以,若一只单身狗被攻击了m次,伤害总吨数t,则现在它的h值即为“初始h”+m*d[i]-t

Gravatar
Dissolute丶Tokgo
积分:1069
提交:375 / 716
差分果然快如闪电

Gravatar
Satoshi
积分:3010
提交:678 / 1922
你们这些提前交的是何居心!

Gravatar
NVIDIA
积分:1171
提交:301 / 546
黑的一匹

Gravatar
Satoshi
积分:3010
提交:678 / 1922
回复 @cstdio : 这题原本题目名称、题目解释全是“1”,我给改了一下,就是为了节省页面,让以后的题用这个新页面

Gravatar
cstdio
积分:4755
提交:1198 / 2108
稍有常识的人都会看出,如果我们的zlx继续前进……