CCF GESP 2024年9月认证 C++ 4级
题目描述
小杨有一个 $n$ 行 $m$ 列的网格图,其中每个格子要么是白色,要么是黑色。
小杨想知道网格图中是否存在一个满足如下条件的子矩形:
- 子矩形由 $4$ 行 $4$ 列组成;
- 子矩形的第 $1$ 行和第 $4$ 行只包含白色格子;
- 对于子矩形的第 $2$ 行和第 $3$ 行,只有第 $1$ 个和第 $4$ 个格子是白色的,其余格子都是黑色的;
请你编写程序帮助小杨判断。
输入格式
第一行包含一个正整数 $t$,代表测试用例组数。
接下来是 $t$ 组测试用例。对于每组测试用例,一共 $n+1$ 行。
第一行包含两个正整数 $n,m$,含义如题面所示。
之后 $n$ 行,每行一个长度为 $m$ 的 $01$ 串,代表网格图第 $i$ 行格子的颜色,如果为 $0$,则对应格子为白色,否则为黑色。
输出格式
对于每组测试用例,如果存在,输出 Yes,否则输出 No。
样例说明
样例 1
3
1 4
0110
5 5
00000
01100
01100
00001
01100
5 5
00000
01100
01110
00001
01100
No
Yes
No
满足条件的子矩形形如:
0000
0110
0110
0000
数据范围
对于全部数据,保证有 $1≤t≤10,1≤n,m≤100$。
题目描述
小杨有一个包含 $n$ 个正整数的序列 $a$。
小杨计划对序列进行多次升序排序,每次升序排序小杨会选择一个区间 $[l,r]$($l \leq r$)并对区间内所有数字,即进行升序 $a_l, a_{l + 1}, \dots a_r$ 排序。每次升序排序会在上一次升序排序的结果上进行。
小杨想请你计算出多次升序排序后的序列。
输入格式
第一行包含一个正整数 $n$,含义如题面所示。
第二行包含 $n$ 个正整数 $a_1, a_2, \dots a_n$,代表序列 $a$。
第三行包含一个正整数 $q$,代表排序次数。
之后 $q$ 行,每行包含两个正整数 $l, r$,代表将区间 $[l_i, r_i]$ 内所有数字进行升序排序。
输出格式
输出一行包含 $n$ 个正整数,代表多次升序排序后的序列。
样例说明
样例 1
5
3 4 5 2 1
3
4 5
3 4
1 3
1 3 4 5 2
- 第一次升序排序后,序列为 [3,4,5,1,2];
- 第二次升序排序后,序列为 [3,4,1,5,2];
- 第三次升序排序后,序列为 [1,3,4,5,2];
数据范围
对于全部数据,保证有 $1≤n,a_i,q≤100,1≤l_i≤r_i≤n$。