为啥需要最外层循环啊,没懂,不加就错
查看原帖
为啥需要最外层循环啊,没懂,不加就错
1376172
w150432楼主2025/7/2 19:33
#include <bits/stdc++.h>

using namespace std;

const int N = 110;

int t, n, m;
int tmp[2];
bool a[N][N], res[N];
bool vis[N], flag[2];

int main() {
    
    cin >> t;
    
    while (t -- ) {
        
        cin >> n >> m;
        
        memset(vis, 0, sizeof vis);
        
        char op;
        for (int i = 1 ; i <= m ; i ++ ) {
            for (int j = 1 ; j <= n ; j ++ ) {
                cin >> op;
                a[i][j] = (op == '1');
            }
            cin >> op;
            res[i] = (op == '1');
        }
        
        for (int k = 1 ; k <= n ; k ++ ) {
            for (int j = 1 ; j <= n ; j ++ ) {
                tmp[0] = tmp[1] = -1;
                flag[0] = flag[1] = 0;
                for(int i = 1; i <= m; i++) {
                    if(vis[i])  continue;
                    if(tmp[a[i][j]] == -1)   tmp[a[i][j]] = res[i];
                    else if(tmp[a[i][j]] != res[i])  flag[a[i][j]] = 1;
                }
                
                for (int i = 1 ; i <= m ; i ++ )
                    if (!flag[a[i][j]]) 
                        vis[i] = 1;
            }
        }
        
        bool ans = 0;
        for(int i = 1 ; i <= m ; i ++ )
            if(!vis[i])  
                ans = 1;
                
        puts(ans ? "LIE" : "OK");
    }
    
    return 0;
}
2025/7/2 19:33
加载中...