78 lines
1.3 KiB
C++
78 lines
1.3 KiB
C++
|
|
#include <bits/stdc++.h>
|
|||
|
|
using namespace std;
|
|||
|
|
const int N = 110;
|
|||
|
|
|
|||
|
|
//ע<>⣺n,mһ<6D><D2BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊcheck() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int n, m;
|
|||
|
|
int a[N][N];
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
3
|
|||
|
|
1 4
|
|||
|
|
0110
|
|||
|
|
5 5
|
|||
|
|
00000
|
|||
|
|
01100
|
|||
|
|
01100
|
|||
|
|
00001
|
|||
|
|
01100
|
|||
|
|
5 5
|
|||
|
|
00000
|
|||
|
|
01100
|
|||
|
|
01110
|
|||
|
|
00001
|
|||
|
|
01100
|
|||
|
|
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
bool check() {
|
|||
|
|
//0<><30><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD>
|
|||
|
|
if (n < 4 || m < 4 ) //<2F><><EFBFBD><EFBFBD>4<EFBFBD><34>4<EFBFBD>У<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD><D4A3>ⲽ<EFBFBD><E2B2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>©
|
|||
|
|
return false;
|
|||
|
|
|
|||
|
|
int s1 = 0, s4 = 0;
|
|||
|
|
for (int i = 1; i <= 4; i++) {
|
|||
|
|
s1 += a[1][i];//<2F><>һ<EFBFBD>еĺ<D0B5>
|
|||
|
|
s4 += a[4][i];//<2F><><EFBFBD><EFBFBD><EFBFBD>еĺ<D0B5>
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (s1 || s4)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD>ȫ<EFBFBD>ǰ<EFBFBD>ɫ
|
|||
|
|
return false;
|
|||
|
|
|
|||
|
|
//<2F><>2<EFBFBD>У<EFBFBD><D0A3><EFBFBD>3<EFBFBD><33>
|
|||
|
|
if (a[2][1] || a[2][4])//(2,1),(2,4)<29><><EFBFBD><EFBFBD><EFBFBD>Ǻ<EFBFBD>ɫ<EFBFBD><C9AB>
|
|||
|
|
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ע<>⣺<EFBFBD><E2A3BA><EFBFBD><EFBFBD>Ҫд<D2AA><D0B4><EFBFBD><EFBFBD><EFBFBD>Եģ<D4B5><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE>ǿ<EFBFBD><C7BF>Ե<EFBFBD>
|
|||
|
|
return false;
|
|||
|
|
if (!a[2][2] || !a[2][3])
|
|||
|
|
return false;
|
|||
|
|
|
|||
|
|
|
|||
|
|
if (a[3][1] || a[3][4])
|
|||
|
|
return false;
|
|||
|
|
if (!a[3][2] || !a[3][3])
|
|||
|
|
return false;
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
int main() {
|
|||
|
|
int T;
|
|||
|
|
cin >> T;
|
|||
|
|
while (T--) {
|
|||
|
|
cin >> n >> m;
|
|||
|
|
for (int i = 1; i <= n; i++) {
|
|||
|
|
string s;//<2F><>Ϊ01<30>м<EFBFBD><D0BC>ո<DEBF><D5B8><EFBFBD>ʹ<EFBFBD><CAB9>string<6E><67><EFBFBD>ж<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ٷֲ<D9B7><D6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>a[N][N]<5D><>
|
|||
|
|
cin >> s;
|
|||
|
|
for (int j = 1; j <= m; j++)
|
|||
|
|
a[i][j] = s[j - 1] - '0';//Ҫע<D2AA><D7A2>string<6E>±<EFBFBD><C2B1>Ǵ<EFBFBD>0<EFBFBD><30>ʼ<EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>j<EFBFBD><6A>Ҫ<EFBFBD><D2AA>1
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (check())
|
|||
|
|
cout << "Yes" << endl;
|
|||
|
|
else
|
|||
|
|
cout << "No" << endl;
|
|||
|
|
}
|
|||
|
|
return 0;
|
|||
|
|
}
|