[2401MT-F] 青藤静掩的愁闷

[2401MT-F] 青藤静掩的愁闷

题目描述

Z 有一个缤纷的边长为 nnn 的正方形网格,每个网格都有自己的颜色,颜色用一个非负整数表示,一开始所有网格的颜色都是 000,Z 最近暴风骤雨,于是这个网格上便有了许多颜色的冲击,每个冲击用三个整数 (i,j,c)(i,j,c)(i,j,c) 表示,表示在第 iii 行的第 jjj 个格子上出现了一次颜色为 ccc 的冲击,其中 (i,j)(i,j)(i,j) 是这个冲击的中心。

一共有 mmm 秒,每秒会发生以下两个事件中的一个:

  1. 在这一秒产生了一个新的颜色冲击 (i,j,c)(i,j,c)(i,j,c),这个冲击的产生时间即为这一秒。
  2. Z 想问你现在他的网格中一共有多少种颜色。

对于第 xxx 秒产生的冲击,会在第 x+tx+tx+t 秒将与这个冲击的中心距离小于等于 ttt 的网格都变为这个冲击的颜色,若同一个格子同时受到多个冲击的影响,这个格子的颜色与影响到它的所有冲击中产生时间即该冲击的中心处产生冲击的时间 )最的冲击的颜色相同。

例如假设现在有两个冲击分别在第 111 秒和第 333 秒产生,对应,在第 555 秒时,前一个冲击会对与其中心距离为 0,1,2,3,40,1,2,3,40,1,2,3,4(此时这个冲击刚传播 444 秒)的所有格子产生影响,后一个冲击会对与其中心距离为 0,1,20,1,20,1,2 的所有格子产生影响,对于没有被两个冲击影响的格子,颜色为 000,对于被其中一个冲击影响的格子,颜色为对应的冲击的颜色,对于被两个冲击影响的格子,其颜色与前一个冲击相同(因为前一个冲击的产生时间 是第 111 秒,早于后一个冲击的产生时间 也就是第 333 秒)。

注意,这里提到的距离是曼哈顿距离,也就是格子 (i,j)(i,j)(i,j) 与格子 (x,y)(x,y)(x,y) 之间的距离为 ∣x−i∣+∣y−j∣|x-i|+|y-j|∣x−i∣+∣y−j∣。

每当 Z 询问你他的网格中有多少种颜色时,请输出一行一个整数表示你的答案。

输入格式

第一行两个整数 n,mn,mn,m,分别表示 Z 的网格大小和总共的秒数。

接下来 mmm 行,每行是以下两种情况之一:
1 i j c,表示出现了一个新的颜色冲击,中心在 (i,j)(i,j)(i,j),颜色为 ccc。
2,表示 Z 询问你网格中有多少种颜色。

输出格式

对于每个 Z 的询问,请输出一行一个整数表示你的答案。

样例 #1

样例输入 #1

复制代码
10 5
2
1 5 7 2
2
1 5 4 5
2

样例输出 #1

复制代码
1
2
3

样例 #2

样例输入 #2

复制代码
6 8
2
1 4 3 4
2
1 2 6 6
2
1 6 6 3
2
2

样例输出 #2

复制代码
1
2
3
4
2

提示

对于 10%10\%10% 的测试数据,满足所有的事件类型为 222。

对于另外 10%10\%10% 的测试数据,满足 c=1c=1c=1。

对于另外 30%30\%30% 的测试数据,满足 n,m≤30n,m\le 30n,m≤30。

对于另外 30%30\%30% 的测试数据,满足 n,m≤100n,m\le 100n,m≤100。

对于 100%100\%100% 的测试数据,满足 1≤n≤150,1≤m≤2×104,1≤c≤m,1≤i,j≤n1\le n\le 150,1\le m\le 2\times 10^4,1\le c\le m,1\le i,j\le n1≤n≤150,1≤m≤2×104,1≤c≤m,1≤i,j≤n。

相关推荐
si莉亚1 分钟前
ROS2安装EVO工具包
linux·开发语言·c++·开源
zyq99101_114 分钟前
DFS算法实战:经典例题代码解析
python·算法·蓝桥杯·深度优先
智者知已应修善业20 分钟前
【51单片机单按键切换广告屏】2023-5-17
c++·经验分享·笔记·算法·51单片机
广州灵眸科技有限公司22 分钟前
为RK3588注入澎湃算力:RK1820 AI加速卡完整适配与评测指南
linux·网络·人工智能·物联网·算法
qinian_ztc29 分钟前
frida 14.2.18 安装报错解决
算法·leetcode·职场和发展
良木生香32 分钟前
【C++初阶】C++入门相关知识(2):输入输出 & 缺省参数 & 函数重载
开发语言·c++
小此方33 分钟前
Re:从零开始的 C++ 进阶篇(三)彻底搞懂 C++ 多态:虚函数、虚表与动态绑定的底层原理
c++
忘梓.34 分钟前
墨色规则与血色节点:C++红黑树设计与实现探秘
java·开发语言·c++
hhh3u3u3u34 分钟前
Visual C++ 6.0中文版安装包下载教程及win11安装教程
java·c语言·开发语言·c++·python·c#·vc-1
AI应用实战 | RE35 分钟前
012、检索器(Retrievers)核心:从向量库中智能查找信息
人工智能·算法·机器学习·langchain