#include<iostream> #include<cstdio> #include<cstring> using namespace std; bool mp[201][201], y[201]; int lk[201]; int n; bool find(int x) { for (int i = 1; i <= n; i++) if (!y[i] && mp[x][i]) { y[i] = 1; if (!lk[i] || find(lk[i])) { lk[i] = x; return 1; } } return 0; } bool work() { for (int i = 1; i <= n; i++) { memset(y, 0, sizeof (y)); if (!find(i))return 0; } return 1; } int main() { int p; scanf("%d", &p); while (p--) { memset(lk, 0, sizeof (lk)); memset(mp, 0, sizeof (mp)); scanf("%d", &n); for (int i = 1; i <= n; i++) for (int j = 1; j <= n; j++) { int x; scanf("%d", &x); if (x)mp[i][j] = 1; } if (work())printf("Yes\n"); else printf("No\n"); } return 0; }