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: ...
随机推荐
- 数据库schema的简介
[参考]自百度百科 数据库中的Schema,为数据库对象的集合,一个用户一般对应一个schema. 官方定义如下: A schema is a collection of database objec ...
- anu - browser
import { oneObject, recyclables, typeNumber } from "./util"; //用于后端的元素节点 export function D ...
- C#foreach的用法
static void Main(string[] args) { int[] a = new int[5] { 1, 2, 3, 4, 5 }; ...
- 利用security.js实现RSA加密
在通常的http协议的网站中直接提交数据可以通过信息抓取从而暴露提交者所提交的信息,特别是注册时的密码和登录时的密码容易被泄露. 那么怎么防止这种现象呢? 很多人会想到加密技术,对没错,本文所讲的就是 ...
- 算法训练 Lift and Throw
算法训练 Lift and Throw 时间限制:3.0s 内存限制:256.0MB 问题描述 给定一条标有整点(1, 2, 3, ...)的射线. 定义两个点之间的距离为其下标之差 ...
- HTTP之get post
1.什么是URL URL的全称是Uniform Resource Locator(统一资源定位符) 通过1个URL,能找到互联网上唯一的1个资源 URL就是资源的地址.位置,互联网上的每个资源都有一个 ...
- 软考------(抽象类、接口) 策略设计模式(strategy) 应用
某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征.需要模拟的飞机种类及其特征如表5-1所示. #include <iostream> #include ...
- each遍历 的原理
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- CTF-练习平台-Misc之 Linux??????
八.Linux?????? 下载文件,解压后只得到一个没有后缀名的文件,添加后缀名为txt,打开搜索,关键词为“flag”,没有找到:改关键词为“key”得到答案
- hdu1087 dp(最大上升子序列和)
题意,给出一列数,要求所有上升子序列中序列和最大的. 这回不是求长度了,但是还是相当基础的 dp 水题,只要用 dp [ q ] 记录以 第 q 个数 a [ q ] 为结尾的上升子序列的最大的和就可 ...