您的位置:首页 > 其它

bzoj1830: [AHOI2008]Y型项链 贪心+乱搞

2014-12-14 22:04 411 查看
首先我们知道假如确定了某个长度的项链,那么多的肯定去掉。

我们可以先找两个串找出它们的公共部分,其余的删掉,再确定第三条。

由于三个项链是像栈一样的存储方式,我们从0开始往上有一个不同的话,后面的都得换,如果还要加入珠子的话操作不就更多了吗/#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
int len[10];
char str[10][100];
int main()
{
for(int i=1;i<=3;i++)
{
scanf("%d%s",&len[i],str[i]+1);
}
int ans=len[1]+len[2]+len[3];
int co,res,tmp;
for(int i=1;i<=3;i++)
{
for(int j=i+1;j<=3;j++)
{
tmp=co=0;
for(;co<min(len[i],len[j])&&str[i][co+1]==str[j][co+1];co++);
int k=6-i-j;
res=len[i]-co+len[j]-co;

for(;tmp<min(len[k],co)&&str[i][tmp+1]==str[k][tmp+1];tmp++);

if(co>=tmp) res+=(co-tmp)+len[k]-tmp;

ans=min(ans,res);

}
}
printf("%d\n",ans);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: