Link:

BZOJ 1789 传送门

Solution:

感觉$n\le 50$可以随便乱搞啊……

这里我是先找到3条链的失配位置,再找到这之后其中2条链最远的失配位置,统计即可

Code:

#include <bits/stdc++.h>

using namespace std;
int l[3],pos,mx,mn;
char s[3][55];

int cal(int x,int y)
{
    int cur=pos+1;
    while(cur<=l[x] && cur<=l[y] && s[x][cur]==s[y][cur])
        cur++;
    return cur-pos-1;
}

int main()
{
    for(int i=0;i<3;i++)
        scanf("%d%s",&l[i],s[i]+1);
    mn=min(l[0],min(l[1],l[2]));
    for(int i=1;i<=mn;i++)
        if(s[0][i]!=s[1][i] || s[0][i]!=s[2][i] || s[1][i]!=s[2][i]) break;
        else pos=i;
    mx=max(cal(0,1),max(cal(0,2),cal(1,2)));
    printf("%d",l[0]+l[1]+l[2]-3*pos-mx);
    return 0;
}

 

相关文章:

  • 2022-12-23
  • 2022-02-26
  • 2021-12-16
  • 2021-06-16
  • 2021-05-28
  • 2021-10-07
  • 2021-12-25
  • 2021-09-24
猜你喜欢
  • 2021-07-29
  • 2021-08-22
  • 2022-03-03
  • 2022-01-03
  • 2022-02-18
  • 2022-12-23
  • 2021-11-15
相关资源
相似解决方案