Star sky 二維前綴和
The Cartesian coordinate system is set in the sky. There you can see n stars, the i-th has coordinates (xi, yi), a maximum brightness c, equal for all stars, and an initial brightness s
Over time the stars twinkle. At moment 0 the i-th star has brightness si. Let at moment t some star has brightness x. Then at moment (t?+?1) this star will have brightness x?+?1, if x?+?1?≤?c, and 0, otherwise.
You want to look at the sky q times. In the i-th time you will look at the moment t
A star lies in a rectangle if it lies on its border or lies strictly inside it.
The first line contains three integers n, q, c (1?≤?n,?q?≤?105, 1?≤?c?≤?10) — the number of the stars, the number of the views and the maximum brightness of the stars.
The next n lines contain the stars description. The i-th from these lines contains three integers xi, yi, si (1?≤?xi,?yi?≤?100, 0?≤?si?≤?c?≤?10) — the coordinates of i-th star and its initial brightness.
The next q lines contain the views description. The i-th from these lines contains five integers ti, x1i, y1i, x2i, y2i (0?≤?ti?≤?109, 1?≤?x1i?<?x2i?≤?100, 1?≤?y1i?<?y2i?≤?100) — the moment of the i-th view and the coordinates of the viewed rectangle.
OutputFor each view print the total brightness of the viewed stars.
Examples input Copy2 3 3output Copy
1 1 1
3 2 0
2 1 1 2 2
0 2 1 4 5
5 1 1 5 5
3input Copy
0
3
3 4 5output Copy
1 1 2
2 3 0
3 3 1
0 1 1 100 100
1 2 2 4 4
2 2 1 4 7
1 50 50 51 51
3Note
3
5
0
Let‘s consider the first example.
At the first view, you can see only the first star. At moment 2 its brightness is 3, so the answer is 3.
At the second view, you can see only the second star. At moment 0 its brightness is 0, so the answer is 0.
At the third view, you can see both stars. At moment 5 brightness of the first is 2, and brightness of the second is 1, so the answer is 3.
http://codeforces.com/contest/835/problem/C
這題就是暴力二位前綴和
1 #include <cstdio> 2 #include <cstring> 3 #include <queue> 4 #include <cmath> 5 #include <algorithm> 6 #include <set> 7 #include <iostream> 8 #include <map> 9 #include <stack> 10 #include <string> 11 #include <vector> 12 #define pi acos(-1.0) 13 #define eps 1e-6 14 #define fi first 15 #define se second 16 #define lson l,m,rt<<1 17 #define rson m+1,r,rt<<1|1 18 #define bug printf("******\n") 19 #define mem(a,b) memset(a,b,sizeof(a)) 20 #define fuck(x) cout<<"["<<x<<"]"<<endl 21 #define f(a) a*a 22 #define sf(n) scanf("%d", &n) 23 #define sff(a,b) scanf("%d %d", &a, &b) 24 #define sfff(a,b,c) scanf("%d %d %d", &a, &b, &c) 25 #define sffff(a,b,c,d) scanf("%d %d %d %d", &a, &b, &c, &d) 26 #define pf printf 27 #define FRE(i,a,b) for(i = a; i <= b; i++) 28 #define FREE(i,a,b) for(i = a; i >= b; i--) 29 #define FRL(i,a,b) for(i = a; i < b; i++) 30 #define FRLL(i,a,b) for(i = a; i > b; i--) 31 #define FIN freopen("DATA.txt","r",stdin) 32 #define gcd(a,b) __gcd(a,b) 33 #define lowbit(x) x&-x 34 #pragma comment (linker,"/STACK:102400000,102400000") 35 using namespace std; 36 typedef long long LL; 37 const int maxn = 1e6 + 10; 38 int n, q, c, sum[105][105][12]; 39 40 int main() { 41 sfff(n, q, c); 42 for (int i = 0, x, y, s ; i < n ; i++) { 43 sfff(x, y, s); 44 sum[x][y][s]++; 45 } 46 for (int i = 1 ; i <= 100 ; i++) 47 for (int j = 1 ; j <= 100 ; j++) 48 for (int k = 0 ; k <= c ; k++) 49 sum[i][j][k] += sum[i - 1][j][k] + sum[i][j - 1][k] - sum[i - 1][j - 1][k]; 50 int t, x1, y1, x2, y2; 51 while(q--) { 52 sf(t); 53 sffff(x1,y1,x2,y2); 54 int ans = 0; 55 for (int i = 0 ; i <= c ; i++) 56 ans += (sum[x2][y2][i] - sum[x1 - 1][y2][i] - sum[x2][y1 - 1][i] + sum[x1 - 1][y1 - 1][i]) * ((i + t) % (c + 1)); 57 printf("%d\n", ans); 58 } 59 return 0; 60 }
Star sky 二維前綴和