bzoj1830 Y形项链
Description
小可可得到了一个可爱的Y型项链。小可可现在的项链是这个样子的:项链的最中间有一颗大珍珠作为结合点,从大珍珠上连出来3条由各种宝石串起来的链子。小可可希望让这3个链子完全一样,她每次可以从一端取下来一个宝石,或者从一端安上去一个宝石。假设小可可每种宝石都有无数多个,小可可希望用尽量少的操作次数得到想要的Y型项链。小可可对于所得到的Y型项链的宝石数没有特殊的要求,所以即使你把所有宝石都弄下来了,也是一个可以接受的方案(三根光秃秃的绳子也是完全一样的)。 换句话说,给你3个字符串,你每一次可以向一个字符串的末端删除一个字符或添加一个字符,你需要用尽量少的操作次数使得这3个字符串变成一样的。
Input
一共有3行,每行有一个数字N,表示Y型项链的这个链子有N个宝石,然后是一个空格,然后是N个'A'和'Z'之间的字符,表示这个链子上的宝石,每个字母表示一种不同的宝石,这个字符串最左边的字符表示的是离大珍珠最近的那个宝石,而最右边的表示的是在顶端的宝石。
Output
只有一个整数:小可可所需要的最少的操作次数。
枚举每个可能的最终结果(必为某串的前缀/空串),计算操作步数。
#include<cstdio>
int l1,l2,l3,c;
int ans;
char s1[],s2[],s3[],ch;
void chk(){
for(int i=;i<=l1;i++){
int m1=,m2=;
while(s1[m1]==s2[m1]&&m1<i)m1++;
while(s1[m2]==s3[m2]&&m2<i)m2++;
int v=l1+i+l2-m1*+l3-m2*;
if(ans>v)ans=v;
}
}
int main(){
scanf("%d%s%d%s%d%s",&l1,s1,&l2,s2,&l3,s3);
ans=l1+l2+l3;
chk();
c=l1;l1=l2;l2=c;
for(int i=;i<;i++){
ch=s1[i];
s1[i]=s2[i];
s2[i]=ch;
}
chk();
c=l1;l1=l3;l3=c;
for(int i=;i<;i++){
ch=s1[i];
s1[i]=s3[i];
s3[i]=ch;
}
chk();
printf("%d",ans);
return ;
}
bzoj1830 Y形项链的更多相关文章
- BZOJ 1789 Y形项链(思维)
这题类似于1787,最后的节点一定是两点的LCA,这里也就是两个字符串的最长公共前缀. # include <cstdio> # include <cstring> # inc ...
- [BZOJ1789][BZOJ1830][Ahoi2008]Necklace Y型项链
[BZOJ1789][BZOJ1830][Ahoi2008]Necklace Y型项链 试题描述 欢乐岛上众多新奇的游乐项目让小可可他们玩的非常开心.现在他们正在玩比赛串项链的游戏,谁串的最快就能得到 ...
- bzoj1830: [AHOI2008]Y型项链(LCP+贪心)
1830: [AHOI2008]Y型项链 题目:传送门 简要题意: 给出三个字符串,可以对任意字符串进行操作,每次操作都可以再其中一个字符串的末尾删除或添加一个字符,求最小操作数使得所有的字符串相同 ...
- 1789: [Ahoi2008]Necklace Y型项链
1789: [Ahoi2008]Necklace Y型项链 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 421 Solved: 258[Submit] ...
- bzoj 1789: [Ahoi2008]Necklace Y型项链 贪心
1789: [Ahoi2008]Necklace Y型项链 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/Jud ...
- B1789 Y型项链 贪心
想明白之后就是一道大水题,就是两两把最长公共前缀求出来,然后直接取最长的,然后就直接暴力算就行了... 题干: Description 欢乐岛上众多新奇的游乐项目让小可可他们玩的非常开心.现在他们正在 ...
- BZOJ1830: [AHOI2008]Y型项链 & BZOJ1789: [Ahoi2008]Necklace Y型项链
[传送门:BZOJ1830&BZOJ1789] 简要题意: 给你3个字符串,你每一次可以在一个字符串的末端删除一个字符或添加一个字符,你需要用尽量少的操作次数使得这3个字符串变成一样的. 题解 ...
- 【BZOJ】1830: [AHOI2008]Y型项链
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1830 直接枚举目标串是什么,目标串一定是三个字符串的某一个前缀(注意可能为空),然后判断一 ...
- 越狱Season 1- Episode 18: Bluff
Season 1, Episode 18: Bluff -Michael: Scofield Scofield Michael Scofield Michael Scofield -Patoshik: ...
随机推荐
- String对象中的正则表达式
(1)身份证号码验证身份证号码是18位数字,根据GB11643-1999<公民身份证>定义制作:由17位本体码和一位校验码组成.身份证号码前6位是地址码,按(GB/T2260)规定执行.接 ...
- Python Django 之 Views HttpRequest HttpReponse
一.Python Django 之 Views 数据交互 http请求中产生两个人核心对象: http请求:HttpRequest对象 http响应:HttpReponse对象 所在位置django. ...
- JS底层知识理解之执行上下文篇
JS底层知识理解之执行上下文篇 一.什么是执行上下文(Execution Context) 执行上下文可以理解为当前代码的执行环境,它会形成一个作用域. 二.JavaScript引擎会以什么方式去处理 ...
- CentOS 下安装和使用 Docker
引言: 在服务器开发过程中,环境部署无疑是及其繁琐的事情,特别是当项目数量和规模达到一定级别之后,在一台新的机器上部署项目环境无疑是极其漫长而痛苦的,那么什么办法能够实现我们的目标:在开发环境的一次配 ...
- dir matlab
%file=dir('D:\dataset\temp');file=dir('D:\dataset\INRIAPerson\test_64x128_H96\pos');for i=3:length(f ...
- 【error】scripts/basic/fixdep: Syntax error: "(" unexpected
前言 第一次安装PCIE驱动的时候容易出现各种问题,总结一下下.. 原因分析 一般情况下,直接make的时候会出现问题. scripts/basic/fixdep: : scripts/basic/f ...
- [LeetCode&Python] Problem 575. Distribute Candies
Given an integer array with even length, where different numbers in this array represent different k ...
- HihoCoder - 1789:阶乘问题 (简单数学)
描述 给定 n, k,求一个最大的整数 m,使得 km 是 n! 的约数 输入 第一行两个正整数 n, k 2 ≤ n,k ≤ 109 输出 输出最大的 m 样例输入 5 2 样例输出 3 思路:我们 ...
- HDU 4619 Warm up 2 贪心或者二分图匹配
给同一张横着的牌的所在的格子编同一样的号,这些格子对应x集合,给同一张竖着的牌所在的格子编同一样的号,对应y集合,同一个格子上既有横着的牌又有竖着的牌,那么就建一条边,有冲突就要拿走一张,结果是总的牌 ...
- 堆优化的dij【模板】
#include<iostream> #include<cstdio> #include<cstring> #include<queue> using ...