博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
codeforces-835C. Star sky(维护二维前缀和,dp)
阅读量:6330 次
发布时间:2019-06-22

本文共 1544 字,大约阅读时间需要 5 分钟。

 

 

在不大于100*100的地图上有星星,每个星星的亮度随时间变化,它们初始亮度不同,但能达到的最高亮度相同,为C。初始亮度为p,t时刻亮度为(p+t)%(C+1)

输入

n q c(为别代表星星数目,查询次数,最高亮度)

n行

x y s(星星的横纵坐标和初始亮度)

q行

t x1 y1 x2 y2(查询t时刻矩阵内及边界上星星的总亮度,其中(x1,y1)是矩阵左上角, (x2,y2)是矩阵右下角)

1 #include 
2 #include
3 #include
4 #include
5 #define INF 0x3f3f3f3f 6 #define MOD 1000000007 7 using namespace std; 8 typedef long long LL; 9 10 const int maxc = 15;11 const int maxn = 110;12 int cnt[maxc][maxn][maxn];13 14 int N, Q, C;15 16 void init() {17 for (int k = 0; k <= C; k++) {18 for (int i = 1; i <= 100; i++) {19 for (int j = 1; j <= 100; j++) {20 cnt[k][i][j] += cnt[k][i - 1][j] + cnt[k][i][j - 1] - cnt[k][i - 1][j - 1];21 }22 }23 }24 }25 26 int solve(int t, int x1, int y1, int x2, int y2) {27 int res = 0;28 for (int k = 0; k <= C; k++) {29 int tmp = cnt[k][x2][y2] + cnt[k][x1 - 1][y1 - 1] - cnt[k][x1 - 1][y2] - cnt[k][x2][y1 - 1];30 res = res + ((k + t) % (C + 1)) * tmp;31 }32 return res;33 }34 35 int main() {36 scanf("%d%d%d", &N, &Q, &C);37 int x, y, s;38 for (int i = 1; i <= N; i++) {39 scanf("%d%d%d", &x, &y, &s);40 cnt[s][x][y]++;41 }42 init();43 int t, x1, x2, y1, y2;44 for (int i = 1; i <= Q; i++) {45 scanf("%d%d%d%d%d", &t, &x1, &y1, &x2, &y2);46 printf("%d\n", solve(t, x1, y1, x2, y2));47 }48 return 0;49 }

 

转载于:https://www.cnblogs.com/xFANx/p/8411356.html

你可能感兴趣的文章
python 日志打印
查看>>
Javascript鼠标滚轮事件兼容写法
查看>>
如何完全卸载 mysql 数据库
查看>>
JavaScript碎片
查看>>
Bootstrap-下拉菜单
查看>>
soapUi 接口测试
查看>>
【c学习-12】
查看>>
工作中MySql的了解到的小技巧
查看>>
loadrunner-2-12日志解析
查看>>
2013年蓝桥杯省赛C/C++A组真题解析
查看>>
[实战]MVC5+EF6+MySql企业网盘实战(5)——ajax方式注册
查看>>
[翻译]应用程序池和应用程序域的区别
查看>>
使用POI创建word表格-在表格单元格中创建子表格
查看>>
php 分析Session无效的原因
查看>>
【原创】不一样的成功启示录----读《异类》有感
查看>>
python 高阶函数 与关键字参数
查看>>
js获取网页高度(详细整理)
查看>>
tm查看
查看>>
组合数学题 Codeforces Round #108 (Div. 2) C. Pocket Book
查看>>
Linux 小知识翻译 - 「别名」
查看>>