【传送门:BZOJ1830&BZOJ1789


简要题意:

  给你3个字符串,你每一次可以在一个字符串的末端删除一个字符或添加一个字符,你需要用尽量少的操作次数使得这3个字符串变成一样的。


题解:

  模拟直接搞,模拟以每个串的每个位置为最终答案,求最小值即可


参考代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<cmath>
using namespace std;
char s1[],s2[],s3[];
int main()
{
int len1,len2,len3;
scanf("%d%s",&len1,s1+);
scanf("%d%s",&len2,s2+);
scanf("%d%s",&len3,s3+);
int mmin=<<-,ans;
int b1=,b2=,b3=;
for(int i=;i<=len1;i++)
{
ans=len1-i;
if(b2!=) ans+=len2-b2++i-b2+;
else if(s1[i]!=s2[i]) b2=i,ans+=len2-b2++i-b2+;
else ans+=len2-i;
if(b3!=) ans+=len3-b3++i-b3+;
else if(s1[i]!=s3[i]) b3=i,ans+=len3-b3++i-b3+;
else ans+=len3-i;
mmin=min(ans,mmin);
}
b1=;b2=;b3=;
for(int i=;i<=len2;i++)
{
ans=len2-i;
if(b1!=) ans+=len1-b1++i-b1+;
else if(s2[i]!=s1[i]) b1=i,ans+=len1-b1++i-b1+;
else ans+=len1-i;
if(b3!=) ans+=len3-b3++i-b3+;
else if(s2[i]!=s3[i]) b3=i,ans+=len3-b3++i-b3+;
else ans+=len3-i;
mmin=min(ans,mmin);
}
b1=;b2=;b3=;
for(int i=;i<=len3;i++)
{
ans=len3-i;
if(b1!=) ans+=len1-b1++i-b1+;
else if(s3[i]!=s1[i]) b1=i,ans+=len1-b1++i-b1+;
else ans+=len1-i;
if(b2!=) ans+=len2-b2++i-b2+;
else if(s3[i]!=s2[i]) b2=i,ans+=len2-b2++i-b2+;
else ans+=len2-i;
mmin=min(ans,mmin);
}
printf("%d\n",min(mmin,len1+len2+len3));
return ;
}

BZOJ1830: [AHOI2008]Y型项链 & BZOJ1789: [Ahoi2008]Necklace Y型项链的更多相关文章

  1. [BZOJ1789][BZOJ1830][Ahoi2008]Necklace Y型项链

    [BZOJ1789][BZOJ1830][Ahoi2008]Necklace Y型项链 试题描述 欢乐岛上众多新奇的游乐项目让小可可他们玩的非常开心.现在他们正在玩比赛串项链的游戏,谁串的最快就能得到 ...

  2. 1789: [Ahoi2008]Necklace Y型项链

    1789: [Ahoi2008]Necklace Y型项链 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 421  Solved: 258[Submit] ...

  3. bzoj 1789: [Ahoi2008]Necklace Y型项链 贪心

    1789: [Ahoi2008]Necklace Y型项链 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://www.lydsy.com/Jud ...

  4. 下面程序的输出结果是____ A:11,10 B:11,11 C:10,10 D:10,11 int x=10; int y=x++; printf("%d,%d",(x++,y),y++);

    下面程序的输出结果是____ A:11,10 B:11,11 C:10,10 D:10,11 int x=10; int y=x++; printf("%d,%d",(x++,y) ...

  5. Highcharts属性与Y轴数据值刻度显示Y轴最小最大值

    Highcharts 官网:https://www.hcharts.cn/demo/highcharts Highcharts API文档:https://api.hcharts.cn/highcha ...

  6. NAPT 分为锥型(Cone)和 对称型(Symmetric)

    NAPT 分为锥型(Cone)和 对称型(Symmetric) 链接:https://www.zhihu.com/question/38729355/answer/86531260 实际上大部运营商提 ...

  7. vim 复制大块内容。 y,p(是单个y,而不是yy)

    vim 复制大块内容. y,p(是单个y,而不是yy)

  8. bzoj 1787 [Ahoi2008]Meet 紧急集合(1832 [AHOI2008]聚会)

    1787: [Ahoi2008]Meet 紧急集合 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 1841  Solved: 857[Submit][ ...

  9. POJ 1286 Necklace of Beads(项链的珠子)

    Necklace of Beads Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7874   Accepted: 3290 ...

随机推荐

  1. JDBC连接mysql时出现的ssl问题

    使用MySQL数据库时出现如下错误: WARN: Establishing SSL connection without server's identity verification is not r ...

  2. HDU 5353 Average

    Problem Description There are n soda sitting around a round table. soda are numbered from 1 to n and ...

  3. RT-Thread开篇

    一直以来对操作系统都有一种既仰慕又畏惧的情感.一方面被操作系统的强大深深吸引.还有一方面又被操作系统的复杂性感到畏惧. 记得在学校的时候也学过一些操作系统的理论知识,但也只限于理论,更似人云亦云. 本 ...

  4. UBUNTU 16.04 下安装动态链接库方法(使用ln命令可以随意映射动态库,ldd查看缺少的动态库)

    一般先使用ldd 来查看该应用程序缺少什么东西,然后,再根据sudo apt install XXX 去安装相应的动态库. 假如没有对应的库,可以使用: sudo ln -s /usr/lib/lib ...

  5. ThinkPHP5.0框架开发实现简单的页面跳转

    ThinkPHP5.0框架开发实现简单的页面跳转 一.效果 登录界面 登录成功界面 登录失败界面 二.目录结构 三.代码 控制器中的Login.php <?php // 声明命名空间 names ...

  6. ubuntu 下的文件校验(md5、sha256)

    在本地使用 md5sum/sha256sum 生成某待测文件的 hash 值,以跟标准文件的 hash 值做对比验证,确定经网络传输过程得到的文件是否真实无损.一般而言,hash 值如果一致,大概率上 ...

  7. 关于markdown的使用

    首先: https://www.cnblogs.com/jordangong/p/9804777.html 注意:提交博客时需将 Markdown 源码粘贴到编辑器中,且编辑器没有实时预览,可以上传后 ...

  8. 你不知道的JavaScript(八)逻辑运算

    JS的逻辑运算结果和其他一些强类型语言差别比较大,也比较容易让人产生困惑,看下面的例子: <script type="text/javascript"> var a = ...

  9. UVa 10943 How do you add?【递推】

    题意:给出n,k,问恰好有k个不超过n的数的和为n的方案数有多少 可以隔板法来做 现在有n个小球放到k个盒子里面,盒子可以为空 那么就是n-k+1个缝隙,放上k-1个隔板(k-1个隔板就分成了k份) ...

  10. javascript实现自动添加文本框功能

    转自:http://www.cnblogs.com/damonlan/archive/2011/08/03/2126046.html 昨天,我们公司的网络小组决定为公司做一个内部的网站,主要是为员工比 ...