Codeforces 835 C Star sky(前缀和)
2017-08-01 17:26
585 查看
题目地址
题意:给你n个星星的位置和初始亮度值,他给你个最大亮度,每时间+1,他的亮度+1,当他的亮度大于最大亮度的时候就变为0,然后之后照常+1,然后给你一个矩形区间以及时间,求这个区间当时的亮度值、
思路:最开始写了半天的线段树,还想了一些减少时间的操作但是还是顺利的TLE了,其实这题就是一道前缀和的题目,num[x][y][k]代表的是位于(x,y)亮度为k的星星有多少颗,你根据x或者y来求前缀和就好了,然后然后当前是有星星的并且亮度一样就把星星的个数与求出来的当前亮度做乘积就好了。
PS:星星是可能重复的
题意:给你n个星星的位置和初始亮度值,他给你个最大亮度,每时间+1,他的亮度+1,当他的亮度大于最大亮度的时候就变为0,然后之后照常+1,然后给你一个矩形区间以及时间,求这个区间当时的亮度值、
思路:最开始写了半天的线段树,还想了一些减少时间的操作但是还是顺利的TLE了,其实这题就是一道前缀和的题目,num[x][y][k]代表的是位于(x,y)亮度为k的星星有多少颗,你根据x或者y来求前缀和就好了,然后然后当前是有星星的并且亮度一样就把星星的个数与求出来的当前亮度做乘积就好了。
PS:星星是可能重复的
#include <iostream> #include <cstring> #include <string> #include <queue> #include <vector> #include <map> #include <set> #include <stack> #include <cmath> #include <cstdio> #include <algorithm> #define N 110 #define LL long long #define inf 0x3f3f3f3f #define lson l,mid,ans<<1 #define rson mid+1,r,ans<<1|1 using namespace std; const LL mod = 1e9 + 7; const double eps = 1e-9; int num [11]; int main(void) { int n, q, c, x, y, v; scanf("%d %d %d", &n, &q, &c); for (int i = 0; i < n; i++) { scanf("%d %d %d", &x, &y, &v); num[x][y][v] += 1; } for (int i = 1; i < N; i++) { for (int j = 1; j < N; j++) { for (int k = 0; k <= c; k++) { num[i][j][k] += num[i][j - 1][k]; } } } while (q--) { int t, x1, y1, x2, y2; LL ans = 0; scanf("%d %d %d %d %d", &t, &x1, &y1, &x2, &y2); for (int i = x1; i <= x2; i++) { for (int j = 0; j <= c; j++) { int cnt = (j + t) % (c + 1); ans += (num[i][y2][j] - num[i][y1 - 1][j]) * cnt; } } printf("%lld\n", ans); } return 0; }
相关文章推荐
- codeforces 835-C. Star sky(dp+前缀和)
- Codeforces 853C Star sky(二维前缀和)
- Codeforces 835C - Star sky 【预处理前缀和】
- CodeForces 835 C.Star sky(水~)
- Codeforces 835C Star sky【思维+暴力预处理二维前缀和】
- 【Codeforces 835 C. Star sky】+ dp
- CodeForces - 835C Star sky (前缀和)
- codeforces 708E——前缀和优化dp
- Codeforces 479E Riding in a Lift【Dp+前缀和优化+二分】好题~
- Codeforces 712D Memory And Scores 前缀和+DP
- Codeforces 611C:New Year and Domino 二维前缀和
- codeForces 165C.Another Problem on Strings (二分+前缀和)
- Codeforces 828B Black Square【暴力枚举+二维前缀和】
- Codeforces 165C Another Problem On Strings 尺取 Or 前缀和
- CodeForces - 831C: Jury Marks(前缀和去重、STL)
- codeforces 479E Riding in a Lift dp+前缀数组优化
- C. Star sky Codeforces
- Codeforces 570D - Tree Requests【树形转线性,前缀和】
- Codeforces 106 D. Treasure Island(前缀和预处理)
- Codeforces 490C Hacking Cypher【前缀模+后缀模+暴力】