Content

给出两个小写字母组成的字符串,求两个字符串的最长公共子串,如有多个按字典序顺序输出,如没有输出 No common sequence.,每两组数据间输出一个空行,最后一组数据后不应输出空行

数据范围:字符串长度不超过 \(300\)。

Solution

原本是奔着作为 SA 的练习题来的,结果看完题目之后,我:???这题目有紫题???

话归正题。由于本题字符串的长度只有 \(300\),因此我们可以直接暴力提取出两个字符串里面的所有子串,然后扫过去找两个字符串的公共子串,取所有公共子串的长度的最大值,然后再回去扫,把所有长度最大的公共子串丢进一个 vector 里面直接排序就可以了。

注意这道题目的特判和毒瘤的输出格式,因为这个我 WA 了好几发。

Code

namespace Solution {
string s, t;
map<string, int> mp; iv Main() {
int kase = 0;
while(cin >> s >> t) {
mp.clear(), kase++;
if(kase > 1) puts("");
int lens = s.size(), lent = t.size(), ans = 0;
F(int, len, 1, lens) F(int, i, 0, lens - len) mp[s.substr(i, len)] |= 1;
F(int, len, 1, lent) F(int, i, 0, lent - len) mp[t.substr(i, len)] |= 2;
for(auto x : mp) if(x.se == 3) ans = max(ans, (int)x.fi.size());
if(!ans) puts("No common sequence.");
else {
vector<string> res;
for(auto x : mp) if((int)x.fi.size() == ans && x.se == 3) res.push_back(x.fi);
sort(res.begin(), res.end());
F(int, i, 0, (int)res.size() - 1) cout << res[i] << endl;
}
}
return;
}
}

UVA760 DNA Sequencing 题解的更多相关文章

  1. LibreOJ 题解汇总

    目录 #1. A + B Problem #2. Hello, World! #3. Copycat #4. Quine #7. Input Test #100. 矩阵乘法 #101. 最大流 #10 ...

  2. Multiclonal Invasion in Breast Tumors Identified by Topographic Single Cell Sequencing

    Title:  Multiclonal Invasion in Breast Tumors Identified by Topographic Single Cell Sequencing 课题的目的 ...

  3. Bioinformatics Glossary

    原文:http://homepages.ulb.ac.be/~dgonze/TEACHING/bioinfo_glossary.html Affine gap costs: A scoring sys ...

  4. N-Gram

    N-Gram是大词汇连续语音识别中常用的一种语言模型,对中文而言,我们称之为汉语语言模型(CLM, Chinese Language Model).   中文名 汉语语言模型 外文名 N-Gram 定 ...

  5. PacBio下机数据解读

    今天被人问起如何看懂三代的下机数据,虽然解决了别人的问题,但感觉自己还是没有搞透. 基本的目录结构: |-- HG002new_O1l_BP_P6_021315b_MB_100pM | |-- D01 ...

  6. 2016-6-15-de novo文献阅读

    准备读四篇denovo的文献: Nature Biotechnology(2015) - Sequencing of allotetraploid cotton (Gossypium hirsutum ...

  7. TruSeq 应该指的是试剂盒名字 NEB

    现在中心用的是NEB试剂盒,建库步骤更简单一些.TruSeq和NEB差不多,既可以建DNA又可以建RNA. TruSeq Technology     TruSeq technology repres ...

  8. The top 100 papers Nature explores the most-cited research of all time.

    The top 100 papers Nature explores the most-cited research of all time. The discovery of high-temper ...

  9. Disposable microfluidic devices: fabrication, function, and application Gina S. Fiorini and Daniel T

    Disposable microfluidic devices: fabrication, function, and application Gina S. Fiorini and Daniel T ...

随机推荐

  1. System.Web.Optimization

    项目中引用了 System.Web.Optimization 这个程序集,缺少程序集会报错: 命名空间"System.Web"中不存在类型或命名空间名"Optimizat ...

  2. Sentry 监控 - Snuba 数据中台架构(SnQL 查询语言简介)

    本文描述了 Snuba 查询语言 (SnQL). 系列 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创建版本 快速使用 Docker 上手 Sentry-CLI - 30 秒 ...

  3. 【虚树学习笔记([SDOI2011]消耗战)】

    题意 [SDOI2011]消耗战 想法 首先我们可以很自然的想到怎么在整棵树上进行求解\(DP\) 很简单 每个点有两个选择 要么对其子树的关键点递归求解 要么自己断开 当然断开的\(cost\)为其 ...

  4. 洛谷 P6144 - [USACO20FEB]Help Yourself P(二项式定理+线段树)

    题面传送门 题意: 给定 \(n\) 条线段,第 \(i\) 条线段左右端点分别为 \(l_i,r_i\) 定义一个线段集合的复杂度为其形成的连通块的个数的 \(k\) 次方. 求这 \(n\) 条线 ...

  5. 内存管理——array new,array delete

    1.array new array new就是申请一个数组空间,所以在delete的时候一定不能忘记在delete前加[] delete加上[]符号以后,就相当于告诉系统"我这里是数组对象, ...

  6. Shell学习(九)——chattr与lsattr命令详解

    有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了.chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的linux ...

  7. 节省内存的循环banner(一)

    循环banner是指scrollview首尾相连,循环播放的效果,使用非常广泛.例如淘宝的广告栏等. 如果是简单的做法可以把所有要显示的图片全部放进一个数组里,创建相同个数的图片视图来显示图片.这样的 ...

  8. Oracle中的instr函数

    最近修改某个条件,由原来输入一个数据修改为可以输入多个,如图所示: 在实现时用到了regexp_substr函数进行分割连接起来的数据,查询时还用到了instr函数进行判断,但出现了问题,当子库存输入 ...

  9. SpringBoot让测试类飞起来的方法

    单元测试是项目开发中必不可少的一环,在 SpringBoot 的项目中,我们用 @SpringBootTest 注解来标注一个测试类,在测试类中注入这个接口的实现类之后对每个方法进行单独测试. 比如下 ...

  10. Nested Classes in C++

    A nested class is a class which is declared in another enclosing class. A nested class is a member a ...