当前位置: 首页 > news >正文

Codeforces Round #427 (Div. 2)-C. Star sky(二维前缀和)

题意:

给定n个星星(可能会重),q次查询,最大的亮度c(<=10),然后每个星星都在一个平面上(<=100×100),星星从初始亮度si到c一个时刻一个时刻地变换(si=c+1时,si变为0),每次查询在t时间从(x1,y1)到(x2,y2)矩形内的所有星星的亮度总和。

思路:

在平面上建立前缀和,因为至多有c+1种时刻,而c<=10,所以完全可以建立c+1个前缀和。在查询时,通过t找到相对应的时刻,然后矩形内的亮度和就等于sum[x2][y2]-sum[x1-1][y2]-sum[x2][y1-1]+sum[x1-1][y1-1];


代码:

#include <bits/stdc++.h>
#define LL long long
using namespace std;
const int inf = 0x3f3f3f3f;
const int maxn = 1e5+5;
struct node
{
	int x, y, w;
} num[maxn];
int sum[15][105][105], a[105][105];
int n, q, c;
void init()
{
	memset(sum, 0, sizeof sum);
	for(int t = 0; t <= 10; ++t)
	{
		memset(a, 0, sizeof a);
		for(int i = 1; i <= n; ++i)
		a[num[i].x][num[i].y] += num[i].w;
		for(int i = 1; i <= 100; ++i)
		for(int j = 1; j <= 100; ++j)
		{
			sum[t][i][j] = sum[t][i-1][j]+sum[t][i][j-1]-sum[t][i-1][j-1]+a[i][j];
		}
		for(int i = 1; i <= n; ++i)
		{
			++num[i].w;
			num[i].w %= (c+1);
		}
	}
}
int main()
{
	int x1, y1, x2, y2, w, t, ans;
	scanf("%d %d %d", &n, &q, &c);
	for(int i = 1; i <= n; ++i)
	scanf("%d %d %d", &num[i].x, &num[i].y, &num[i].w);
	init();
	for(int _ = 1; _ <= q; ++_)
	{
		scanf("%d %d %d %d %d", &t, &x1, &y1, &x2, &y2);
		t %= (c+1);
		ans = sum[t][x2][y2]-sum[t][x2][y1-1]-sum[t][x1-1][y2]+sum[t][x1-1][y1-1];
		printf("%d\n", ans);
	}
	return 0;
}

继续加油~

相关文章:

  • sequioadb源码分析2
  • HDU-6058 Kanade's sum - 2017 Multi-University Training Contest - Team 3(思维+模拟链表)
  • PowerShell获取特定“描述”的虚拟机IP地址
  • HDU-6060 RXD and dividing - 2017 Multi-University Training Contest - Team 3(思维+最小斯坦纳树)
  • error while loading shared libraries错误处理
  • POJ-3270 Cow Sorting(贪心+置换)
  • php对gzip文件或者字符串解压实例参考
  • POJ-1637 Sightseeing tour(通过网络流判定混合图的欧拉回路)
  • 哈密顿图和欧拉图知识小结
  • POJ-2689 Prime Distance(区间素数筛--经典题)
  • c语言移位操作
  • HDU-6069 Counting Divisors - 2017 Multi-University Training Contest - Team 4(分解质因子区间筛法)
  • HDU-6073 Matching In Multiplication - 2017 Multi-University Training Contest - Team 4(拓扑+连通块处理)
  • 我的Java开发学习之旅------Java经典排序算法之插入排序
  • POJ-3352 Road Construction(边双连通分量+缩点)
  • 2017 年终总结 —— 在路上
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • CSS 提示工具(Tooltip)
  • ES6 ...操作符
  • Github访问慢解决办法
  • HTML中设置input等文本框为不可操作
  • HTTP 简介
  • java中的hashCode
  • Redis的resp协议
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • Spring声明式事务管理之一:五大属性分析
  • 安装python包到指定虚拟环境
  • 好的网址,关于.net 4.0 ,vs 2010
  • 和 || 运算
  • 坑!为什么View.startAnimation不起作用?
  • 前端_面试
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 最简单的无缝轮播
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • $NOIp2018$劝退记
  • (06)金属布线——为半导体注入生命的连接
  • (07)Hive——窗口函数详解
  • (2)STM32单片机上位机
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (转载)PyTorch代码规范最佳实践和样式指南
  • ***检测工具之RKHunter AIDE
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET 常见的偏门问题
  • .Net7 环境安装配置
  • .Net各种迷惑命名解释
  • @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
  • @Responsebody与@RequestBody
  • [20170728]oracle保留字.txt
  • [bzoj4010][HNOI2015]菜肴制作_贪心_拓扑排序
  • [C#]使用PaddleInference图片旋转四种角度检测