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 |
Re:Here is my code , who can tell me WHY wa, thx!!!In Reply To:Here is my code , who can tell me WHY wa, thx!!! Posted by:pozen at 2008-06-27 23:37:08 > #include <stdio.h> > > #define MAX 1025 > #define QURRY 2 > #define ADD 1 > #define INIT 0 > #define END 3 > #define RET return > #define INT32 int > #define INT64 long long > > INT64 sum_t[MAX][MAX]; > > INT32 s, ins; > > INT32 lowbit(INT32 t) > { > RET t & (t ^ (t - 1)); > } > > INT32 plus(INT32 i,INT32 j,INT32 c) > { > while(i <= s) > { > INT32 tempj = j; > while(tempj <=s) > { > sum_t[i][tempj] += c; > tempj += lowbit(tempj); > } > i += lowbit(i); > } > RET 0; > } > > INT64 get_sum(INT32 i,INT32 j) > { > INT64 temp = 0; > while(i > 0) > { > INT32 tempj = j; > while(tempj >0) > { > temp += sum_t[i][tempj]; > tempj -= lowbit(tempj); > } > i -= lowbit(i); > } > RET temp; > } > > INT32 main() > { > //freopen("in.txt","r",stdin); > while(scanf("%d",&ins) == 1) > { > if(ins == INIT) > { > scanf("%d",&s); > for(INT32 i = 1; i <= s; i++) > for(INT32 j = 1; j <= s; j++) > sum_t[i][j] = 0; > } > else if(ins == ADD) > { > INT32 x, y, c; > scanf("%d%d%d",&x,&y,&c); > x++,y++; > plus(x,y,c); > } > else if(ins == QURRY) > { > INT32 l, b, r, t; > INT64 sum = 0; > scanf("%d%d%d%d",&l,&b,&r,&t); > l++,b++,r++,t++; > sum += get_sum(t,r); > if(b-1 > 0) sum -= get_sum(b-1,r); > if(l-1 > 0) sum -= get_sum(t,l-1); > if(b-1 > 0 && l-1 > 0) sum += get_sum(b-1,l-1); > printf("%lld\n",sum); > } > else if(ins == END) break; > } > RET 0; > } 搞错下标了。。 Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator