AcWing 3814. 矩阵变换
3 分钟能读完
题目描述
给定一个
你可以选择若干列(也可以不选),并将这些列上的所有元素进行变换(
你的目标是使得矩阵中有尽可能多的行满足:一行中的所有元素都为
输出可以得到的满足条件的行的最大数量。
输入格式
第一行包含整数
接下来
输出格式
输出可以得到的满足条件的行的最大数量。
数据范围
样例
输入样例1:
4
0101
1000
1111
0101
输出样例1:
2
输入样例2:
3
111
111
111
输出样例2:
3
思路
可以发现,不同的字符串不可能在同样的操作下同时变为全
代码
C++
#include <iostream>
#include <unordered_map>
using namespace std;
int main()
{
unordered_map<string, int> S;
int n, res = 0;
string s;
cin >> n;
for ( int i = 0; i < n; i ++ )
{
cin >> s;
res = max(res, ++ S[s]);
}
cout << res << endl;
return 0;
}
Java
import java.util.*;
public class Main
{
static Scanner in = new Scanner(System.in);
public static void main(String args[])
{
Map<String, Integer> S = new HashMap<>();
int n = in.nextInt(), res = 0;
String s;
for ( int i = 0; i < n; i ++ )
{
s = in.next();
int cnt = S.getOrDefault(s, 0);
S.put(s, cnt + 1);
res = Math.max(res, cnt + 1);
}
System.out.printf("%d\n", res);
}
}
这篇在全部 101 篇里的位置: