CF1676C Most Similar Words 题解

题意

定义长度为 $n$ 的字符串 $a,b$ 的差异度为 $\sum\limits_{i=1}^n|a_i-b_i|$,

$|a_i-b_i|$ 表示 $a_i$ 与 $b_i$ 在字母表上的距离,

给你 $n$ 个字符串,让你找一对字符串 $a,b$ 使得它们的差异度最小,输出这个最小值。

思路

观察到 $n$ 很小,我们可以 $O(n^2)$ 枚举每一对字符串,

对每一对字符串计算差异度,总复杂度 $O(n^2m)$,可以接受。

代码

#include <cstdio>
#include <cstring>
int f(int x) {return x >= 0 ? x : -x;}
int T, n, m, q;char s[150][15];
int main()
{
    scanf("%d", &T);
    while(T--)
    {
        scanf("%d%d", &n, &m);q = 1e9;
        for(int i = 1;i <= n;++i) scanf("%s", s[i]);
        for(int i = 1, t;i <= n;++i)
            for(int j = i + 1;j <= n;++j)
            {
                t = 0;
                for(int k = 0;k < m;++k)
                    t += f(s[i][k] - s[j][k]);
                if(t < q) q = t;
            }
        printf("%d\n", q);
    }
    return 0;
}
posted @ 2022-05-11 08:33  Jijidawang  阅读(9)  评论(0)    收藏  举报  来源