发现n最多只到15,想到暴力枚举。
具体思路:二进制枚举,1代表好人,0代表坏人。然后看是否与实际情况是否相符(j->k为1但是i的二进制第k位为0 或者 j->k为0但是i的二进制第k位为1)即可。
i枚举状态 每一位1代表好人0代表坏人
j代表第j个人
不符实际情况:s[j][k]==1&& (1<
class Solution { public: int maximumGood(vector>& s) { int n = s.size(); int ans = 0; for (int i = 0; i < (1 << n); ++i) { int j = 0, cnt = 0, flag = false; while ((1 << j) <= i && !flag) { if ((1 << j) & i) { cnt++; for (int k = 0; k < n; ++k) { if ((s[j][k] == 1 && !((1< 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)