E题题解,我的题解最简单
#include<algorithm>
#include<vector>
#include<cstring>
#define ll long long
using namespace std;
int ans[5][5];
int re[10][5];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
int t;
cin >> t;
while (t--)
{
memset(re, 0, sizeof(re));
int xl = 0, zj = 0, shen = 0;
for (int i = 1; i <= 3; i++)
{
for (int j = 1; j <= 3; j++)
{
char c;
cin >> c;
if (c == 'X')
{
ans[i][j] = 1;
re[i][1]++, re[j + 3][1]++;
xl++;
}
else if (c == 'O')
{
ans[i][j] = 2;
re[i][2]++, re[j + 3][2]++;
zj++;
}
else
{
ans[i][j] = 0; shen++;
re[i][0]++, re[j + 3][0]++;
}
}
}
if (xl == 0 || xl == 1 || xl == 2)
{
cout << "Yes" << endl;
continue;
}
for (int i = 1; i <= 3; i++)
{
re[7][ans[i][i]]++, re[8][ans[i][4 - i]]++;
}
bool f = false;
for (int i = 1; i <= 8; i++)
{
if (re[i][0] <= 2 && re[i][1] >= 1 && re[i][2] == 0)
{
f = true;
break;
}
}
if (f)
{
cout << "Yes" << endl;
}
else cout << "No" << endl;
}
}