【题解】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号
浙公网安备 33010602011771号