描述

How can millions of different and complex structures be built using only a few simple building blocks? Just ask your DNA. DNA (short for deoxyribonucleic acid) spells out the genetic codes of millions of species, using just four molecules: adenine (A), guanine (G), thymine (T), and cytosine (C). These molecules are called nucleotide bases. Different sequences of nucleotide bases are what define each species.
Within
this coil of DNA lies all the information needed to produce everything
in the human body. A strand of DNA may be millions, or billions, of
base-pairs long. Different segments of the DNA molecule code for
different characteristics in the body. A Gene is a relatively small
segment of DNA that codes for the synthesis of a specific protein. This
protein then will play a structural or functional role in the body. A
chromosome is a larger collection of DNA that contains many genes and
the support proteins needed to control these genes.


Now
, we give you the Sequence of some genes, which code for different
proteins. And then we give every protein a score.here comes your
problem,if we give you a chromosome in sequence , of course it can code
many proteins, can you arrange which proteins it code , with the object
to get The largest score (two proteins can not be overlap).

输入

There
will be several testcases. For each testcase, the first line is an
integer N(1 < N ≤ 100,000), the number of the genes we will give you.
Then followed N lines , each line contains a string S(the lenth of S is
no more than 10), the sequence of the gene , and an integer C, the
score of the protein the gene code. The last line of each testcase is a
string (the length of this string is no more than 1000), describes the
sequence of the chromosome.

输出

For each testcase , output the largest score in the sample’s format.

样例输入

4
AATG 3
AT 2
GCGG 3
GG 2
AATGCGG
3
A 1
C 1
G 1
T

样例输出

Case 1: 5
Case 2: 0

题目来源

HNU 2009

dp[i+l]=max(dp[i]+M[temp]),M[temp]表示某基因的score值。

大量输入输出使用scanf。

#include <stdio.h>
#include <string>
#include <map>
#include <iostream>
using namespace std; int main(int argc, char *argv[])
{
int t,c=;
int dp[];
while(scanf("%d",&t)!=EOF){
char gene[];
int score;
map< string,int > M;
memset(dp,,sizeof(dp));
for(int i=; i<=t; i++){
scanf("%s %d",gene,&score);
M[gene]=score;
}
string g;
cin>>g;
int len=g.size();
for(int i=; i<len; i++){
for(int l=; l<=; l++){
if(l+i>len)continue;
string temp=g.substr(i,l);
if(dp[i+l] < dp[i]+M[temp]){
dp[i+l]=dp[i]+M[temp];
}
}
}
int ans=-;
for(int i=; i<=len; i++){
if(dp[i]>ans)
ans=dp[i];
}
printf("Case %d: %d\n",++c,ans);
}
return ;
}

TOJ 2641 Gene的更多相关文章

  1. TOJ 2776 CD Making

    TOJ 2776题目链接http://acm.tju.edu.cn/toj/showp2776.html 这题其实就是考虑的周全性...  贡献了好几次WA, 后来想了半天才知道哪里有遗漏.最大的问题 ...

  2. KEGG and Gene Ontology Mapping in Bioinformatic Method

    使用KOBAS进行KEGG pathway和Gene Ontology分析 Article from Blog of Alfred-Feng http://blog.sina.com.cn/u/170 ...

  3. 合并基因表达水平(merge gene expression levels, FPKM)

    使用tophat和cufflinks计算RNA-seq数据的表达水平时,当一个基因在一个样本中有多个表达水平时需要合并它们的表达水平. This code is a solution to colla ...

  4. augustus, gene prediction, trainning

    做基因组注释 先用augustus训练,然后再用maker做基因注释 augustus提供一些训练好的,如果有和你的物种非常接近的,直接用提供的,没有的话再自己训练. 网址: http://bioin ...

  5. gene框架文档 - 路由类 gene_router

    路由类 Gene\Router 介绍 Gene\Router 是gene框架的核心类之一,本框架区别于其他常见框架的最大地方就是独特.强大.简单的路由定义等.路由强大灵活,支持回调.类方法:支持res ...

  6. gene框架文档 - 概述

    欢迎使用Gene框架 最新版本:V1.2.2 开源地址:https://github.com/sasou/php-gene 作者:sasou 文档地址:http://php-gene.com/doc ...

  7. Human Gene Functions

    Human Gene Functions Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 18053 Accepted: 1004 ...

  8. POJ 1080 Human Gene Functions -- 动态规划(最长公共子序列)

    题目地址:http://poj.org/problem?id=1080 Description It is well known that a human gene can be considered ...

  9. poj1080--Human Gene Functions(dp:LCS变形)

    Human Gene Functions Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 17206   Accepted:  ...

随机推荐

  1. HTML5和CSS3实例教程 中文版 高清PDF扫描版

    HTML5和CSS3实例教程共分3部分,集中讨论了HTML5和CSS3规范及其技术的使用方法.首先是规范概述,介绍了新的结构化标签.表单域及其功能(包括自动聚焦功能和占位文本)和CSS3的新选择器.接 ...

  2. 搭建自己的git服务器--gogs

    //@desn:搭建自己的git服务器--gogs //@desn:码字不宜,转载请注明出处 //@author:张慧源  <turing_zhy@163.com> //@date:201 ...

  3. React学习笔记3

    React的生命周期   生命周期分为三个阶段   1.mounted(初始化的时候) 当我们看见页面元素从JSX变成了DOM节点时,React组件已经被载入(mounted)到页面中了   2.up ...

  4. c# Include 与 用户控件

    <!-- #Include File="~/App_UC/head.bootstrap.aspx --> 这个路径文件可以是你html代码,也可以是应用脚本文件, 原理:跟用户控 ...

  5. docker run hello-world失败

    提示镜像拉取失败,解决方案 到 https://cr.console.aliyun.com/   注册一个账户 列表中就有 加速器 启动  Docker 端  右键  选择配置 在Docker Dae ...

  6. 标准模板库使用参考——vector向量容器

    C++的STL从广义上讲分为algorithm(算法),container(容器)和iterator(迭代器)三类,包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法. 在C++标准库中,ST ...

  7. 并不能来一发50AC

    本来想来一发50AC嗨一下 然后发现只有40+ 算了放弃了..

  8. pycharm自动调整html页面代码缩进不正确的解决办法

    pycharm自动调整html页面代码缩进不正确的解决办法

  9. 利用百度翻译API批量翻译文本

    有时间再做总结! # coding=utf-8 #authority:bing #2017-7-18 import httplib import md5 import urllib import ur ...

  10. python怎样在一行中捕获多个异常

    所属网站分类: python基础 > 异常处理 作者:浮沉 链接:http://www.pythonheidong.com/blog/article/71/ 来源:python黑洞网,专注pyt ...