
知识点哈希校招时部分企业笔试将禁止编程题跳出页面为提前适应练习时请使用在线自测而非本地IDE。描述对于给定的 nn 行 mm 列的矩阵每一个元素要么是 ‘0’‘0’要么是 ‘1’‘1’。每一轮你可以进行一次以下操作∙ ∙选择一行的元素将其全部反置即 ‘0’‘0’ 变为 ‘1’‘1’‘1’‘1’ 变为 ‘0’‘0’。请你帮助小歪判断若能进行任意多轮操作也可以不进行操作至多能使得多少列的元素均为 ‘1’‘1’。你只需要输出这个最大值。输入描述第一行输入两个正整数 n,m(1≦n,m≦3×103)n,m(1≦n,m≦3×103) 代表矩阵的行数和列数。此后 nn 行每行输入一个长度为 mm 、仅由 ‘0’‘0’ 和 ‘1’‘1’ 构成的字符串代表矩阵每一行中的元素。输出描述输出一个整数表示至多能使得多少列的元素均为 ‘1’‘1’。示例1输入3 4 1111 1111 1111复制输出4复制说明在这个样例中不需要进行操作所有列的元素均为 ‘1’‘1’。示例2输入3 2 01 10 11复制输出1复制说明在这个样例中我们可以选择对第一行进行操作使得第一行变为 1010此时第一列的元素均为 ‘1’‘1’。// 遍历每一列每一列的字符组成一个字符串相同的字符串可以在变换的情况下是的全为 1 // 不同的字符串不可能通过变换使得全为 1 能发现这一点就好了 #includebits/stdc.h using namespace std; const int N3e36; unordered_mapstring,int unmp; int n,m; string str[N]; int main(){ cinnm; for(int i0;in;i){ cinstr[i]; } for(int i0;im;i){ string s; for(int j0;jn;j){ sstr[j][i]; } unmp[s]; } int ans0; for(auto [k,v]:unmp){ ansmax(ans,v); } coutans; return 0; }