题解:P15606 [ICPC 2021 Jakarta R] Uniform Maker
题目要求
一次操作可以将单词中的一个字符改为另一个字符,问要多少次操作能让所有旗帜上的单词相同。
思路
如果将所有单词改为
Code
#include<bits/stdc++.h>
using namespace std;
string a[105];
int v[205];
int main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
int n,m;
cin>>n>>m;
for(int i=1;i<=n;++i){
cin>>a[i];
}
int sum = 0;
for(int i=0;i<m;++i){
memset(v,0,sizeof v);
for(int j=1;j<=n;++j){//统计每个字母出现次数
v[(int)a[j][i]]++;
}
int ans = 0,ansi = 0;
for(int j=1;j<=200;++j){//找出哪个字母出现次数最多
if(v[j] > ans){
ans = v[j];
ansi = j;
}
}
char c = ansi;
for(int j=1;j<=n;++j){//和每个字符串作比较
if(a[j][i] != ansi) sum++;
}
}
cout<<sum;
return 0;
}