题解:P15606 [ICPC 2021 Jakarta R] Uniform Maker

· · 题解

1. 题意

国际服装道具公司(ICPC) 已制作 n 面旗帜,每个旗帜上都有一个相同长度的单词,问存在某一个目标单词,使每个旗帜通过修改字母来改成目标单词,求最少的改字母的次数。

2. 思路

枚举题。可以枚举 n 个单词的每一位字母,记录重复率最高的字母,将它作为目标单词当前位的字母,这样可以使修改次数最少。循坏累加要修改的次数,最后输出结果即可。

3. 代码

#include<bits/stdc++.h>
//#pragma GCC optimize("O3","Ofast","inline","unroll-loops")
#define ll long long
using namespace std;
ll n,m,f[26],s;
string ss[105];
int main()
{
    cin.tie(nullptr)->ios::sync_with_stdio(false);
    cin >> n >> m;
    for(int i=1;i<=n;i++) cin >> ss[i];
    for(int j=0;j<m;j++)
    {
        memset(f,0,sizeof(f));
        ll zd=0;
        for(int i=1;i<=n;i++)
        {
            f[int(ss[i][j]-'a')]++;
            zd=max(zd,f[int(ss[i][j]-'a')]);
        }
        s+=(n-zd);
    }
    cout << s;

    return 0;
}