楼主: 
sixB (6B)   
2024-11-23 02:54:531072.
bitset 翻一翻
因为要固定size
所以做了个mask
让超过n的不变
我还是很不习惯直接对数字操作
class Solution {
public:
    int maxEqualRowsAfterFlips(vector<vector<int>>& mat) {
        unordered_map<bitset<301>, int> mp;
        int n = mat[0].size();
        string m = string(301 - n, '1') + string(n, '0');
        bitset<301> mask(m);
        cout << "M: " << mask << '\n';
        for(auto& row: mat){
            string bit_s(row.begin(), row.end());
            for(char& c: bit_s){
                c += '0';
            }
            bitset<301> bs(bit_s);
            mp[bs | mask]++;
            bs.flip();
            mp[bs | mask]++;
        }
        int mx = 1;
        for(auto& [bs, cnt]: mp){
            mx = max(mx, cnt);
        }
        return mx;
    }
};