Star sky CodeForces - 835C
生活随笔
收集整理的這篇文章主要介紹了
Star sky CodeForces - 835C
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
用一個(gè)三維數(shù)組cnt[x][y][k]表示從(1, 1)到(x, y)亮度為k的個(gè)數(shù),然后查詢的時(shí)候就是對(duì)于每一個(gè)亮度,計(jì)算出這個(gè)亮度t秒后的亮度和當(dāng)前這個(gè)亮度的個(gè)數(shù),答案就是他們的乘積, 然后遍歷每種亮度就可以算出答案
#include<map> #include<set> #include<ctime> #include<cmath> #include<stack> #include<queue> #include<string> #include<vector> #include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #define lowbit(x) (x & (-x))typedef unsigned long long int ull; typedef long long int ll; const double pi = 4.0*atan(1.0); const int inf = 0x3f3f3f3f; const int maxn = 128; const int maxm = 1000020; const int mod = 1e9+7; using namespace std;int n, m; int T, tol; int cnt[maxn][maxn][maxn/10];void init() {memset(cnt, 0, sizeof cnt); }int main() {init();int q, c;scanf("%d%d%d", &n, &q, &c);int mx=0, my=0;int x, y, s;for(int i=1; i<=n; i++) {scanf("%d%d%d", &x, &y, &s);cnt[x][y][s]++;mx = max(mx, x);my = max(my, y);}for(int i=1; i<=100; i++) {for(int j=1; j<=100; j++) {for(int k=0; k<=c; k++) {cnt[i][j][k] = cnt[i][j][k] + cnt[i-1][j][k] + cnt[i][j-1][k] - cnt[i-1][j-1][k];}}}int t, x1, y1, x2, y2;while(q--) {scanf("%d%d%d%d%d", &t, &x1, &y1, &x2, &y2);int ans = 0;for(int k=0; k<=c; k++) {int tmp = (k+t) % (c+1);int cx = cnt[x2][y2][k] - cnt[x1-1][y2][k] - cnt[x2][y1-1][k] + cnt[x1-1][y1-1][k];ans += tmp * cx;}printf("%d\n", ans);}return 0; } View Code?
轉(zhuǎn)載于:https://www.cnblogs.com/Jiaaaaaaaqi/p/9525778.html
總結(jié)
以上是生活随笔為你收集整理的Star sky CodeForces - 835C的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: D. Mahmoud and Ehab
- 下一篇: input框属性