A. ab
直接根据题意模拟即可。
Code
B. A^A
直接枚举 \(i= 1, 2,\dots, 15\),每次看看 \(i ^ i\) 是否等于 \(A\) 即可。
Code
C. Number Place
Description
给你一个 \(9 \times 9\) 的矩阵 \(A\),判断是否合法,满足以下三个条件,即为合法。
- 对于每一行,包含数字 \(1 \sim 9\);
- 对于每一列,包含数字 \(1 \sim 9\);
- 将矩阵 \(A\) 从上到下分成三组,每组三行三列。这样会分成 \(9\) 个 \(3 \times 3\) 的矩阵,每个矩阵也必须包含 \(1 \sim 9\) 的每个数字。
Solution
直接根据题意模拟即可。
每一行每一列不能出现同样的数字,很好判断。用 \(cntx\) 数组记录每一样每一个数字出现的次数;用 \(cnty\) 数组记录每一列每个数字出现的次数。
最后判断 \(cntx_i\) 和 \(cnty_i\) 是否都 \(= 1\) 即可。
再处理第三种情况,将矩阵分成 \(9\) 个 \(3 \times 3\) 的矩阵。这种情况我们可以分别枚举行的起点和列的起点,每次再从起点循环,就能取出每个小矩阵。
然后再用 \(cnt\) 数组记录出每个数字出现的次数,最后判断。
D. Good Tuple Problem
Description
给你两个长度为 \(M\) 的序列 \(A\) 和 \(B\),满足以下条件时成为他们是“好的序列”。
- 存在一个长度为 \(N\) 的序列 \(X\),只由 \(0\) 和 \(1\) 组成,满足以下条件:
- 对于每个 \(i = 1,2,\dots M\),\(X_{A_i} \neq X_{B_i}\)。
现在,请你判断序列 \((A,B)\) 是否是“好的序列”。
Solution
这道题非常经典,是一个二分图板子。
使用 DFS 判断是否是二分图。
维护数组 \(f\) 来记录当前的状态:
- \(f_v = -1\) 表示当前结点 \(v\) 还未被访问。
- \(f_v = 0/1\) 表示该顶点上写的是 \(0/1\)。
对于每个 \(v = 1,2, \dots ,M\),执行以下操作:
- 如果 \(f_v \neq -1\),表示已经访问了节点 \(v\),直接
continue
。 - 如果 \(f_v = -1\),说明当前的联通块还没有被访问过。执行 DFS,从这个节点开始 DFS,执行二分图黑白染色。
最后判断这张图是否是二分图,输出答案即可。
其他的不会。
标签:AtCoder,Code,数字,矩阵,ABC327,判断,327,序列,每个 From: https://www.cnblogs.com/yhx0322/p/17815351.html