| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
1000MS AC 跑得太慢了#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 1034
int p[N];
int a[N][N];
int t,n;
void add(int x,int y,int c){
while (x<=n){
int d=y;
while (d<=n)
a[x][d]+=c,d+=p[d];
x+=p[x];
}
}
int sum(int x,int y){
int t=0;
while (x>0){
int d=y;
while (d>0)
t+=a[x][d],d-=p[d];
x-=p[x];
}
return t;
}
int main(void){
for (int i=1;i<=1024;i++)p[i]=i&(-i);
scanf ("%d%d",&t,&n);
while (scanf ("%d",&t)!=EOF&&t!=3){
if (t==1){
int x,y,d;
scanf ("%d%d%d",&x,&y,&d),x++,y++;
add(x,y,d);
}
else{
int x,y,p,q,ans;
scanf ("%d%d%d%d",&x,&y,&p,&q),x++,y++,p++,q++;
ans=sum(p,q)+sum(x-1,y-1)-sum(x-1,q)-sum(p,y-1);
printf ("%d\n",ans);
}
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator