NC19879. [AHOI2008]NECKLACE Y型项链
描述
输入描述
一共有3行,表示Y型项链的三条链子,每行开始有一个数字N,表示初始时这条链子上串有N个宝石(N ≤ 50),随后是一个空格,然后是N个'A'和'Z'之间的字符,表示这个链子上的宝石,每个字母表示一种不同的宝石,这个字符串最左边的字符表示的是离大珍珠最近的那个宝石,而最右边的表示的是在链子末端的宝石。
输出描述
只有一个整数,表示所需要的最少的操作次数.
示例1
输入:
3 CAT 3 TAC 5 CATCH
输出:
8
C++ 解法, 执行用时: 3ms, 内存消耗: 440K, 提交时间: 2022-01-13 22:28:20
#include<iostream> #include<cstdio> #include<cstdlib> using namespace std; int l[3]; char s[3][51]; int ans=1e9; int main() { for(int i=1;i<=3;i++) { scanf("%d%s",l+i,s[i]); } for(int i=1;i<=2;i++) { for(int j=i+1;j<=3;j++) { int ln=0,k=6-i-j,fln=0; while(ln<l[i] && ln<l[j] && s[i][ln]==s[j][ln])ln++; while(fln<ln && s[i][fln]==s[k][fln])fln++; ans=min(ans,l[k]-fln+ln-fln+l[i]-ln+l[j]-ln); } } printf("%d",ans); return 0; }