【题解】AT5227
思路
我们可以将这一个矩阵转化为一个一维数组。
之后输入的 n 个数中,有相同的,就打上标记。
由于矩阵是 3 * 3 的,所以我们可以用 \(\Theta(1)\) 的时间复杂度进行判断。
Code
#include <cstdio>
const int MAXN = 15;
int n;
int a[MAXN];
bool flag, v[MAXN];
int main() {
for (int i = 1; i <= 9; i++)
scanf("%d", &a[i]);
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
int x;
scanf("%d", &x);
for (int j = 1; j <= 9; j++)
if (x == a[j])
v[j] = 1;
}
if ((v[1] && v[2] && v[3]) || (v[4] && v[5] && v[6]) || (v[7] && v[8] && v[9]))
flag = 1;
if ((v[1] && v[4] && v[7]) || (v[2] && v[5] && v[8]) || (v[3] && v[6] && v[9]))
flag = 1;
if ((v[1] && v[5] && v[9]) || (v[3] && v[5] && v[7]))
flag = 1;
printf("%s", flag ? "Yes" : "No");
return 0;
}
本文来自博客园,作者:zhou_ziyi,转载请注明原文链接:https://www.cnblogs.com/zhouziyi/p/16526549.html

浙公网安备 33010602011771号