poj 3080 Blue Jeans

题目连接

http://poj.org/problem?id=3080

Blue Jeans

Description

The Genographic Project is a research partnership between IBM and The National Geographic Society that is analyzing DNA from hundreds of thousands of contributors to map how the Earth was populated. 

As an IBM researcher, you have been tasked with writing a program that will find commonalities amongst given snippets of DNA that can be correlated with individual survey information to identify new genetic markers. 

A DNA base sequence is noted by listing the nitrogen bases in the order in which they are found in the molecule. There are four bases: adenine (A), thymine (T), guanine (G), and cytosine (C). A 6-base DNA sequence could be represented as TAGACC. 

Given a set of DNA base sequences, determine the longest series of bases that occurs in all of the sequences.

Input

Input to this problem will begin with a line containing a single integer n indicating the number of datasets. Each dataset consists of the following components:

  • A single positive integer m (2 <= m <= 10) indicating the number of base sequences in this dataset.
  • m lines each containing a single base sequence consisting of 60 bases.

Output

For each dataset in the input, output the longest base subsequence common to all of the given base sequences. If the longest common subsequence is less than three bases in length, display the string "no significant commonalities" instead. If multiple subsequences of the same longest length exist, output only the subsequence that comes first in alphabetical order.

Sample Input

3
2
GATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
3
GATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATA
GATACTAGATACTAGATACTAGATACTAAAGGAAAGGGAAAAGGGGAAAAAGGGGGAAAA
GATACCAGATACCAGATACCAGATACCAAAGGAAAGGGAAAAGGGGAAAAAGGGGGAAAA
3
CATCATCATCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
ACATCATCATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACATCATCATTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT

Sample Output

no significant commonalities
AGATAC
CATCATCAT

字符串暴力枚举。。

#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<vector>
#include<map>
using std::map;
using std::min;
using std::find;
using std::pair;
using std::vector;
using std::multimap;
#define pb(e) push_back(e)
#define sz(c) (int)(c).size()
#define mp(a, b) make_pair(a, b)
#define all(c) (c).begin(), (c).end()
#define iter(c) __typeof((c).begin())
#define cls(arr, val) memset(arr, val, sizeof(arr))
#define cpresent(c, e) (find(all(c), (e)) != (c).end())
#define rep(i, n) for(int i = 0; i < (int)n; i++)
#define tr(c, i) for(iter(c) i = (c).begin(); i != (c).end(); ++i)
const int N = 61;
typedef char Word[61];
Word str1, str2, st[11];
void solve(int n) {
    bool f;
    int i, j, k, len = 0;
    for (i = 0; i < N - 3; i++) {
        for (j = 3; j < N - i; j++) {
            strncpy(str1, st[0] + i, j); str1[j] = '\0';
            f = true;
            for (k = 1; k < n; k++) {
                if (!strstr(st[k], str1)) { f = false; break; }
            }
            if (f && j > len) {
                len = j;
                strcpy(str2, str1);
            }
            if (f && j == len) {
                if (strcmp(str1, str2) < 0) strcpy(str2, str1);
            }
        }
    }
    puts(!len ? "no significant commonalities" : str2);
}
int main() {
#ifdef LOCAL
    freopen("in.txt", "r", stdin);
    freopen("out.txt", "w+", stdout);
#endif
    int t, n;
    scanf("%d", &t);
    while(t--) {
        scanf("%d", &n);
        rep(i, n) scanf("%s", st[i]);
        solve(n);
    }
    return 0;
}

转载于:https://www.cnblogs.com/GadyPu/p/4773468.html

[poj 3080]Blue Jeans [kmp] Description The Genographic Project is a research partnership between IBM and The National Geographic Society that is analyzing DNA from hundreds of thousands of contributors to map how the Earth w 阅读详情

相关推荐

手把手教你用CubeMX给GD32F103点灯、调串口(附完整工程)

本文详细介绍了如何使用CubeMX为GD32F103开发板配置GPIO点灯和串口通信,包含完整的工程创建、代码构建和测试流程。特别强调了GD32与STM32的差异点及常见避坑技巧,帮助开发者快速上手GD32开发。

weixin_42566424的博客 313

jp

表現が変だったら、教えてください。鉛筆だったら、消しゴムで消すことができますよ。寒かったら、窓を閉めてください。休日でも働きます。薬を飲んでも、この病気はなおりません。今年の夏休みは3日だけです。私は水しか飲みません。よき効く薬でも、たくさん飲むと体によくありません。出発まであと10分です。昨日は天気予報のとおりに、大雨がふりました。かぜを引いてしまって、な

sirius_1980的专栏 3729

FPGA 上的 YOLOv8 实时目标检测:从模型优化到硬件加速全解析

本文全面解析了将YOLOv8目标检测模型部署到FPGA进行硬件加速的完整流程。通过模型裁剪、混合精度量化等优化手段,结合HLS设计专用计算引擎与数据流,实现了高能效比的实时推理。文章深入探讨了软硬协同部署、性能调试与优化技巧,为追求极致实时性与低功耗的边缘AI应用提供了从算法到硬件的实战指南。

weixin_29031161的博客 605

jps

jps 用于查看当前系统开启的java进程。 命令格式:jps [options ] [ hostid ] hostid:指定特定主机,可以是ip地址和域名, 也可以指定具体协议,端口。 [protocol:][[//]hostname][:port][/servername] 显示pid 类名 root@LIBNIG:~# jps 25361 Jps 25351 A 701 Bootstrap ...

嘿!没错,我是李先生 1526

Python自然语言处理 NLTK 库用法入门教程【经典】

@本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 本文实例讲述了Python自然语言处理 NLTK 库用法。分享给大家供大家参考,具体如下: 在这篇文章中,我们将基于 Python 讨论自然语言处理(NLP)。本教程将会使用 Python NLTK 库。NLTK 是一个当下流行的,用于自然语言处理的 Python 库。 那么 NLP 到底是什么?学习 NLP 能带来什么好处? ...

python函数基础教程 1万+

医药领域知识图谱快速及医药问答项目(项目全过程)

该项目是中科院软件所刘焕勇老师在github上的开源项目,基于知识图谱的医药领域问答项目 Github项目地址:mirrors / liuhuanyong / qasystemonmedicalkg · GitCode 一、项目环境搭建 该部分要十分注意,由于版本升级的问题,一些用法及格式已经不兼容了。 python3.8 下载地址:Python Release Python 3.8.10 | Python.orght...

qq_52062182的博客 9916

jps 那些事

jps 是jdk提供的一个查看当前java进程的小工具, JavaVirtual Machine Process Status Tool的缩写 命令参数 [options]选项 : -q:仅输出VM标识符,不包括classname,jar name,arguments in main method -m:输出main method的参数 -l:输出完全的包名,应用主类名,jar的完全路径名 -v:...

zhixingheyi_tian的博客 743

STM32开发实战--解决STM32CubeMX生成代码时钟初始化卡死问题

本文详细分析了STM32CubeMX生成代码在时钟初始化阶段卡死的问题,提供了多种解决方案,包括简单修改和稳健的等待机制。通过深入探讨HAL库的时钟初始化陷阱及硬件层面的根本原因,帮助开发者快速定位并解决STM32开发中的常见问题。

weixin_26965807的博客 440

poj3080

Blue Jeans Time Limit:1000MS Memory Limit:65536K Total Submissions:7671 Accepted:3184 Description The Genographic Project is a research partnership between IBM and ...

weixin_34008933的博客 343

MatGPT:在MATLAB中集成AI助手,实现代码生成与调试自动化

大语言模型(LLM)通过API接口为开发者提供了强大的自然语言理解和代码生成能力,其核心原理是基于海量数据训练的Transformer架构,能够根据上下文预测并生成连贯的文本或代码。这一技术为工程实践带来了革命性价值,特别是在科学计算和算法开发领域,能够显著提升开发效率,实现智能化的代码辅助和问题解答。在实际应用中,开发者常需在IDE与AI工具间频繁切换,导致工作流中断。MatGPT作为一个开源项目,通过深度集成ChatGPT API到MATLAB环境,有效解决了这一痛点。它支持多模态输入、预设提示词管理和

weixin_42388898的博客 500

【Transformer】小白入门指南

Transformer是起源于NLP领域,然后在图像、视频、声音等领域都得到了广泛应用的基础架构,是继MLP、CNN、RNN’后的公认的第四大基础模型结构。Transformer技术凭借其卓越的表现和广泛的应用前景,已经成为了机器学习领域的一个关键技术。自从2017年Google提出》一文以来,Transformer架构的出现彻底改变了机器学习和深度学习的格局,尤其是在处理语言模型、生成模型以及多模态学习等领域,Transformer几乎成为了不可或缺的技术基石。

图挖掘领域,新晋砖家 ☞ 未来可期,欢迎和静静一起学习交流吖 2522

jBPM-jPDL学习笔记—框架设计简介(六)

 上接 jBPM-jPDL学习笔记—框架设计简介(五)&lt;handler&gt;(处理器)名称类型多样性描述expression属性此属性同class属性互斥jPDL表达式。该表达式返回字符串结果,与leaving transitions的命名相匹配class属性此属性同expression属性互斥实现接口org.jbpm.graph.node.DecisionHandler的Java类的完整...

linliangyi2006的专栏 169

从零实现深度学习框架【实现自己的PyTorch(已完结)】

本着“凡我不能创造的,我就不能理解”的思想,此系列文章会基于纯Python以及NumPy从零创建自己的深度学习框架,该框架类似PyTorch能实现自动求导。

日积月累,天道酬勤 6862

POJ_3080 Blue Jeans 【KMP】

题目链接 题目描述 题目叭叭说了一大堆,其实意思就是让你在n个字符串中找到一个最长的公共子串,如果长度小于3输出:no significant commonalities 否则输出最长的子串即可。 解题思路 首先将第一个串分解,把其所有的子串作为kmp的模式串,在剩余的字符串中查找,如果剩余的字符串中都存在该模式串,就更新答案(公共子串的长度 和 公共子串)。 最后根据题目...

Learning Deep Learning 478

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

POJ 3080.Blue Jeans

题目:http://poj.org/problem?id=3080 AC代码(C++): #include #include #include #include #include #include #include #include #include #define INF 0xfffffff #define MAXN 2005 using namespace

njyexiong的博客 260

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

POJ - 3080 Blue Jeans

https://vjudge.net/problem/POJ-3080 POJ - 3080 Blue Jeans题目AC代码 题目 The Genographic Project is a research partnership between IBM and The National Geographic Society that is analyzing DNA from hundreds of thousands of contributors to map how the Earth was p

斯文~ 260

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

POJ 3080 Blue Jeans

Blue Jeans Time Limit:1000MS Memory Limit:65536K Total Submissions:22483 Accepted:9983 Description The Genographic Project is a research partnership between IBM and The Natio...

~ 449

POJ 3080 Blue Jeans

POJ 3080 Blue Jeans Description The Genographic Project is a research partnership between IBM and The National Geographic Society that is analyzing DNA from hundreds of thousands of contributors to ma...

旺崽的博客 2586

POJ 3080 Blue Jeans KMP

题目:http://poj.org/problem?id=3080 题意:给定m个字符串,长度都为60,且只有ACGT四种字符,问这m个串的最长公共串是什么,若有多个,输出字典序最小的那个,长度小于3的输出no significant commonalities 思路:枚举第一个字符串的,每次去掉首部一个字符,然后用kmp去匹配剩下的所有字符串,求得所有公共长度的最小值,然后取其中的最大值,记

弱智就要多努力 497

[POJ3080]Blue Jeans 【String】

[POJ3080]Blue Jeans 【题目大意】 给你M个字符串,每个字符串长度为60,让你选出最长且字典序最小的一段,始这个子串是这M个字符串的子串,如果最长子串长度<3,输出“no significant commonalities”,否则输出这个子串。 【题解】 其实没啥好写,就是,字符组串的运用,其实不需要KMP,...

aiweiluan5095的博客 121

poj 3080 Blue Jeans(kmp)

poj 3080 PKU 3080 Blue Jeans(kmp)?#include<stdio.h>#include<string.h>const int N=100;int n,m,next[N];char dna[N][N];void get_next(char *str,int len){ next[0]=-1; int j=0,k=-1;//k记...

weixin_30498921的博客 75

POJ-3080 Blue Jeans

题意:在给出的所有串中找出一个长度大于三且字典序最小的最长模式串并输出,否则输出no significant commonalities。 思路:如果存在模式串,则该模式串可成功匹配到所有串,枚举出第一个串的全部子串作为模式串,与其他串进行匹配。 #include <cstdio> #include <cstring> using namespace std; char s[15][65], p[65]; int next[65], lp, ls, flag; void get_ne

qq_25243147的博客 228

【KMP+二分枚举】 I - Blue Jeans POJ - 3080

Blue Jeans Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 21193   Accepted: 9399 Description The Genographic Project is a research partnersh...

博客 267

POJ3080-Blue Jeans

http://poj.org/problem?id=3080 最长公共子串,感觉自己写的不错~ #include<stdio.h> #include<string.h> const int maxm=10+2; const int maxs=60+2; int main(void) { int loop,m,len,i,j,k; ch...

weixin_30466953的博客 90
上一篇: poj 3070 Fibonacci
下一篇: poj 3259 Wormholes
dong12276
博客等级 码龄13年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值