#F. 睿抗与小鹿的贪心消消乐

    传统题 1000ms 256MiB

睿抗与小鹿的贪心消消乐

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目背景

因为睿抗过于没梗所以此处无图。至少笔者是这么跟学长吐槽的。于是,

我找不到睿抗官网对睿抗程序设计赛事的介绍。——笔者

睿抗是个人 IOI 赛制,与 OI 赛制大差不差,唯一的区别是 IOI 赛制允许你在赛中查看提交结果,并且没有罚时设定,可以多次反复提交直至答案正确。最后的排名以分数为第一关键字,最后一次正确过题的时间为第二关键字。不允许携带纸质材料。C++赛道仅允许使用 DevC++作为 IDE。

睿抗和天梯赛使用一个叫做 PTA 的比赛平台,这个平台使用一个叫 OMS 的双机位监考软件(意味着你需要给手机插电),去年在竞赛选手中由于种种问题获得了良(骂)好(街)的口碑。

初赛和决赛均在线上使用 OMS 监考。

在2024年睿抗编程赛道国赛中,最后一题是与消消乐有关的题目。你将模拟一个贪心的玩家,尝试在每次操作中获取尽可能多的分数。但是笨蛋小鹿不会玩消消乐,也没有在赛时通过此题。于是他决定向你学习消消乐技术,请你帮助他成为一个消消乐高手。

题目描述

给出一个 N×NN \times N 的二维矩阵,矩阵中包括 R G B三种颜色,代表消消乐的棋盘,三个连续的的同色格子可以消除。除此之外,棋盘中还有一个万能色块 .,可以替代任何颜色。小鹿将进行 QQ 次询问。每次询问分为两种操作:操作1给出三个坐标,如果这三个块坐标连续并且可以消除,输出 YES,否则输出 NO。操作2给出一个坐标和一个字符,小鹿将使用神奇的道具将这个坐标的颜色更改为输入的颜色。

这里,连续坐标指的是:三个二维坐标有一维均相同,剩下一维成公差为1的等差数列。如:(1,2)(1,3)(1,4)(1,2)(1,3)(1,4)是连续坐标,(1,2)(2,2)(3,2)(1,2)(2,2)(3,2)也是连续坐标,但(1,2)(1,3)(2,3)(1,2)(1,3)(2,3)不是。

输入描述

第一行包含一个整数 N(1N500)N(1 \leq N \leq 500),代表矩阵的边长。

接下来 NN 行,每行输入 NN 个字符,代表 N×NN \times N 的矩阵。 AijR,G,B,.(1i,jn) A_{ij} \in {R,G,B,'.'} (1 \leq i,j \leq n)。 坐标 (i,j)(i, j) 代表 a[i][j]a[i][j]

N+2N+2 行输入一个整数 Q(1Q5000)Q(1 \leq Q \leq 5000) ,代表 QQ 次查询。

接下来 QQ 行,每行代表一次查询。

查询1的格式:1 x1 y1 x2 y2 x3 y3。如果(x1,y1)(x2,y2)(x3,y3)(x_1,y_1)(x_2,y_2)(x_3,y_3)这三个格子可以消除,输出一行 YES,否则输出一行 NO(1x1,y1,x2,y2,x3,y3N)(1 \leq x_1,y_1,x_2,y_2,x_3,y_3\leq N)

查询2的格式:2 x y c,将坐标为(x,y)(x,y)的地方修改为cc(1x,yN,cR,G,B,.)(1 \leq x,y \leq N,c \in {R,G,B,'.'})

输出描述

对于每一次查询1,输出一个 YESNO,一行输出一个。

样例

3
RGR
RGR
RRR
4
1 1 3 2 3 3 3
1 2 1 2 2 2 3
2 2 2 R
1 2 1 2 2 2 3
YES
NO
YES
5
RRR.R
GGGGG
RRBBR
RGRGR
RBRGB
4
1 1 3 1 4 1 5
1 3 1 3 2 3 3
2 3 2 .
1 1 1 2 2 3 3
YES
NO
NO

提醒

本题数据量比较庞大,请使用C++语言交题的同学在写完程序以后在程序主函数开头加入以下几行代码关闭流同步以防止程序运行超时:

ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);

示例:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0), cout.tie(0);
  //你的其它代码
	return 0;
}

2024年ACM集训队第一次入队赛 同步赛

未参加
状态
已结束
规则
ACM/ICPC
题目
7
开始于
2024-8-31 18:30
结束于
2024-8-31 21:30
持续时间
3 小时
主持人
参赛人数
32