bzoj1789 Necklace Y型项链

我们可以发现答案目标串即为某一个串的前缀,所以只要枚举前缀再计算两个串需要转移的距离即可

这种题目不要老往dp上想,要善于利用题目条件

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<string>
 4 #include<cstring>
 5 using namespace std;
 6 string a,b,c;
 7 string s;
 8 int na,nb,nc;
 9 int ans=19991231;
10 int cal(string x,string y)
11 {
12     int i=1;
13     while(x[i]==y[i] && i<x.size() && i<y.size())i++;
14    // cout<<x<<" "<<y<<" "<<i<<endl;
15     i--;
16     return x.size()-i-1+y.size()-i-1;
17 }
18 int main()
19 {
20     cin>>na>>a;
21     cin>>nb>>b;
22     cin>>nc>>c;
23     a="0"+a;
24     b="0"+b;
25     c="0"+c;
26     ans=na+nb+nc;
27     s="0";
28     for(int i=1;i<=na;i++)
29     {
30         s=s+a[i];
31         ans=min(ans,cal(s,a)+cal(s,b)+cal(s,c));
32     }
33     s="0";
34     for(int i=1;i<=nb;i++)
35     {
36         s=s+b[i];
37         ans=min(ans,cal(s,a)+cal(s,b)+cal(s,c));
38     }
39     s="0";
40     for(int i=1;i<=nc;i++)
41     {
42         s=s+c[i];
43         ans=min(ans,cal(s,a)+cal(s,b)+cal(s,c));
44     }
45     printf("%d\n",ans);
46     return 0;
47 }

时间: 2024-10-12 08:11:26

bzoj1789 Necklace Y型项链的相关文章

[BZOJ 1789] [BZOJ 1830] [AHOI 2008] Necklace Y型项链

1789 & 1830: [Ahoi2008]Necklace Y型项链 Time Limit: 1 SecMemory Limit: 64 MB Description 欢乐岛上众多新奇的游乐项目让小可可他们玩的非常开心.现在他们正在玩比赛串项链的游戏,谁串的最快就能得到优厚的奖品.这可不是普通的项链,而是一种Y型项链,项链的最中间有一颗大珍珠作为结合点,从大珍珠上连出来3条由各种宝石串起来的链子.比赛的规则是这样的:每次可以从三条链子中某一条的一端取下来一个宝石,或者安上去一个宝石,称为一次

1789: [Ahoi2008]Necklace Y型项链

1789: [Ahoi2008]Necklace Y型项链 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 421  Solved: 258[Submit][Status][Discuss] Description 欢乐岛上众多新奇的游乐项目让小可可他们玩的非常开心.现在他们正在玩比赛串项链的游戏,谁串的最快就能得到优厚的奖品.这可不是普通的项链,而是一种Y型项链,项链的最中间有一颗大珍珠作为结合点,从大珍珠上连出来3条由各种宝石串起来的链子.比赛的规

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

1789: [Ahoi2008]Necklace Y型项链 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id=1789 Description 欢乐岛上众多新奇的游乐项目让小可可他们玩的非常开心.现在他们正在玩比赛串项链的游戏,谁串的最快就能得到优厚的奖品.这可不是普通的项链,而是一种Y 型项链,项链的最中间有一颗大珍珠作为结合点,从大珍珠上连出来3条由各种宝

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

试题描述 欢乐岛上众多新奇的游乐项目让小可可他们玩的非常开心.现在他们正在玩比赛串项链的游戏,谁串的最快就能得到优厚的奖品.这可不是普通的项链,而是一种Y型项链,项链的最中间有一颗大珍珠作为结合点,从大珍珠上连出来3条由各种宝石串起来的链子.比赛的规则是这样的:每次可以从三条链子中某一条的一端取下来一个宝石,或者安上去一个宝石,称为一次操作,经过若干次操作,最终使得三条链子完全相同.想要赢得比赛,那么只能使用尽量少的操作次数.假设每种宝石都有无数多个以供使用,且链子足够长.你能帮助小可可赢得比赛

bzoj1830: [AHOI2008]Y型项链(LCP+贪心)

1830: [AHOI2008]Y型项链 题目:传送门 简要题意: 给出三个字符串,可以对任意字符串进行操作,每次操作都可以再其中一个字符串的末尾删除或添加一个字符,求最小操作数使得所有的字符串相同 题解: 一开始没有看到只有三个串 仔细想想发现会是一道水ti: 因为只有三个串嘛,而且n才50,那就对任意两个串都跑一下LCP,找出匹配率最高的两个串,然后就可以开始真正的操作了: 首先:对于匹配率最高的两个串,对串进行删除使它变短或者进行添加使它变长所需要的操作数是一样的(比如CATB和CATCH

X/Y型文案

[X/Y型文案] X型文案人,他们更像你语言学家.修辞学家和诗人,他们的日常工作就是想创意.查词典和构思修辞,以想办法用华丽的表达来描述产品. Y型文案往往并不华丽,有时甚至只不过是简单地描绘出用户心中的情景,它们往往充满画面感.语言简单.直指利益. 更多请参考链接中的原文. 转自:http://mt.sohu.com/20150602/n414301385.shtml

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

Necklace of Beads Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7874   Accepted: 3290 Description Beads of red, blue or green colors are connected together into a circular necklace of n beads ( n < 24 ). If the repetitions that are pro

OI刷水记录

3.19 颓了一周: **3211: 花神游历各国 区间开方区间查询 可以用树状数组暴力修改+并查集维护下一个不为1的数 #include<bits/stdc++.h> #define rep(i,l,r) for(int i=l;i<=r;i++) #define N 101333 typedef long long ll; int f[N],a[N],now,m,n,l,r,x,delta; ll c[N]; inline void add(int x,int k){while(x&

words2

餐具:coffee pot 咖啡壶coffee cup 咖啡杯paper towel 纸巾napkin 餐巾table cloth 桌布tea -pot 茶壶tea set 茶具tea tray 茶盘caddy 茶罐dish 碟plate 盘saucer 小碟子rice bowl 饭碗chopsticks 筷子soup spoon 汤匙knife 餐刀cup 杯子glass 玻璃杯mug 马克杯picnic lunch 便当fruit plate 水果盘toothpick 牙签中餐:bear's