Skip to content

Latest commit

 

History

History
43 lines (37 loc) · 1.13 KB

maximumgood.md

File metadata and controls

43 lines (37 loc) · 1.13 KB

题目描述:

image

解决过程:

没做出来

暴力枚举每个状态就可以过

代码:

class Solution {
public:
    int maximumGood(vector<vector<int>>& statements) {
        int n = statements.size();
        int ans = 0;
        for (int m = 1; m < (1 << n); ++m) {
            bool find = true;
            for (int i = 0; i < n; ++i) {
                for (int j = 0; j < n; ++j) {
                    if (i == j) continue;
                    if (statements[i][j] == 1) {
                        if ((m & (1 << i)) && !(m & (1 << j))) {
                            find = false;
                            break;
                        }
                    } else if (statements[i][j] == 0) {
                        if ((m & (1 << i)) && (m & (1 << j))) {
                            find = false;
                            break;
                        }
                    }
                }
                if (!find) break;
            }
            if (find) ans = max(ans, __builtin_popcount(m));
        }
        return ans;
    }
};