http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=76

题目大意:

题目前面都是废话。

给你一串基因,然后给你上面的外显子的起始和终止位置,求最长上升子序列(LIS)

并且输出这些外显子的序号

思路:

直接DP,DP更新的时候用一个数组记录当前结点上一个是什么。最后用类似并查集的方法找到最开始的那一个。

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAXN=50000+10;
struct exons
{
int begin,end;
int id;
}a[MAXN];
bool operator < (const exons &x,const exons &y)
{
return x.begin < y.begin || x.begin==y.begin && x.end < y.end;
} int dp[MAXN];
int pre[MAXN];
int ans[MAXN];
int main()
{
int n;
while(~scanf("%d",&n),n)
{
for(int i=0;i<n;i++)
{
scanf("%d%d",&a[i].begin,&a[i].end);
a[i].id=i+1;
} sort(a,a+n); memset(dp,0,sizeof(dp));
memset(pre,-1,sizeof(pre));
dp[0]=1; for(int i=1;i<n;i++)
{
for(int j=0;j<=i;j++)
{
if(a[i].begin >= a[j].end && dp[i] < dp[j]+1)
{
dp[i]=dp[j]+1;
pre[i]=j;
}
}
} int len=0;
for(int i=n-1;i!=-1;i=pre[i])
{
ans[len++]=a[i].id;
}
for(int i=len-1;i>0;i--)
printf("%d ",ans[i]);
printf("%d\n",ans[0]); //printf("%d\n",dp[n-1]);
}
return 0;
}

ZOJ 1076 Gene Assembly LIS的更多相关文章

  1. ZOJ 1076 Gene Assembly(LIS+路径打印 贪心)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=76 题目大意:在一个DNA上,给定许多基因的起始位置和结束位置,求出这 ...

  2. ZOJ 1076 Gene Assembly

    原题链接 题目大意:首先学习一个生物学的单词,exon:外显子,DNA序列中能够翻译表达的片段.给出很多外显子的起始点和终点,求寻找包含最多外显子的一条链,并且输出这些外显子的编号. 解法:先把所有外 ...

  3. 贪心,Gene Assembly,ZOJ(1076)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=76 解题报告: 1.类似活动安排问题. 2.输出格式要注意. #inc ...

  4. zoj1076 Gene Assembly

    这道和zoj1025一样,本质是贪心算法,首先要求任意最长的序列,我们只要保证最长就行,也就是在一幅图中找一个最长的链,首先我们需要根据y排序(输入为x,y),因为y大的肯定在y小的后面,然后就直接贪 ...

  5. 一位学长的ACM总结(感触颇深)

    发信人: fennec (fennec), 信区: Algorithm 标 题: acm 总结 by fennec 发信站: 吉林大学牡丹园站 (Wed Dec 8 16:27:55 2004) AC ...

  6. POJ题目细究

    acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP:  1011   NTA                 简单题  1013   Great Equipment     简单题  102 ...

  7. 【转】POJ百道水题列表

    以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...

  8. ZOJ 刷题记录 (。・ω・)ノ゙(Progress:31/50)

    [热烈庆祝ZOJ回归] P1002:简单的DFS #include <cstdio> #include <cstring> #include <algorithm> ...

  9. 温故知新的经典贪心题目:今年暑假不AC?

    情景: “今年暑假不AC?” “是的.” “那你干什么呢?” “看世界杯呀,笨蛋!” “@#$%^&*%...” 确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电 ...

随机推荐

  1. java 第三方库

    转载自http://www.cnblogs.com/lucus-jia/p/3483511.html java 第三方库   总结一下常用的java第三方库,方便查询和使用,欢迎补充. 1.核心库 A ...

  2. JavaScript--数据结构与算法之二叉树

    树是一种非线性的数据结构,以分层的方式存储数据. 二叉树:查找非常快,而且二叉树添加或者删除元素也非常快. 形象的可以描述为组织结构图,用来描述一个组织的结构.树是由边连接的点组成.树的一些基本概念: ...

  3. .Net 程序在自定义位置查找托管/非托管 dll 的几种方法

    原文:.Net 程序在自定义位置查找托管/非托管 dll 的几种方法 一.自定义托管 dll 程序集的查找位置 目前(.Net4.7)能用的有2种: #define DEFAULT_IMPLEMENT ...

  4. nexus 搭建maven私服

    1. nexus 下载地址 https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.14.4-03-bundle.tar.g ...

  5. gdb x查看二进制

    参考 http://blog.csdn.net/allenlinrui/article/details/5964046 (gdb) disassemble main Dump of assembler ...

  6. ios UITextView 提示文本

    定义两个UITextView,一个用于输入文本,一个用于显示提示信息,当输入文本为空时显示提示信息,否则不显示提示信息. //6.3.1文字内容提示 _contentTextViewTip = [[U ...

  7. Android仿Win8界面的button点击

    今天没事的时候,感觉Win8的扁平化的button还是挺好看的,就研究了下怎样在安卓界面实现Win8的扁平化button点击效果. 发现了一个自己定义的View能够实现扁平化button效果,话不多说 ...

  8. Robot Framework初步使用

    第一步,新建一个Project:

  9. 【2017 Multi-University Training Contest - Team 6】Kirinriki

    [链接]http://acm.hdu.edu.cn/showproblem.php?pid=6103 [题意] 给出一串字符串,从中选出两个不重叠的字符串,使得两个字符串的距离和 <= m 的最 ...

  10. POJ 3009 Curling 2.0 {深度优先搜索}

    原题 $On Planet MM-21, after their Olympic games this year, curling is getting popular. But the rules ...