poj 1887 Testing the CATCHER_最长上升子序列

原创 2013年12月02日 21:28:50

题意:题目太长没看,直接看输入输出猜出是最长下降子序列

用了以前的代码直接a了,做法类似贪心,把最小的顺序数存在数组里面,每次二分更新数组得出最长上升子序列

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	int dp[40002],a[40002],n,t,i,low,up,top,mid,max,tmp,k,b[40002],cas=1;
	while(1)
	{
		scanf("%d",&tmp);
		if(tmp==-1)
			break;
		k=1;
		b[k++]=tmp;
		while(scanf("%d",&tmp)){
			if(tmp==-1)
				break;
			b[k++]=tmp;
			
		}
		k--;
		for(i=1;i<=k;i++)
			a[i]=b[k-i+1];
		top=1;
		dp[1]=a[1];
		max=0;
		for(i=1;i<=k;i++)
		{
			low=1;
			up=top;
			while(low<=up)
			{
				mid=(low+up)/2;
				if(dp[mid]>=a[i])
					up=mid-1;
				else
					low=mid+1;
			}
			dp[low]=a[i];
			if(low>top)
				top++;
		}
		printf("Test #%d:\n",cas++);
		printf("  maximum possible interceptions: %d\n\n",top);
	}
	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

POJ 1631(最长上升子序列 nlogn).

~~~~ 由题意可知,因为左边是按1~n的顺序递增排列,要想得到不相交组合,左边后面的一定与相应右边后面的相连,如此一来, 就可以发现其实是一道最长上升子序列的题目,要注意的是N 题目链接:ht...
  • u013519226
  • u013519226
  • 2014年08月03日 21:06
  • 2556

poj 3903(最长上升子序列 )

题目链接:http://poj.org/problem?id=3903 Stock Exchange Time Limit: 1000MS   Memory Limit...
  • liusuangeng
  • liusuangeng
  • 2014年08月28日 15:46
  • 697

POJ3903(dp最长上升子序列STL)

题意:看样例就知道。 思路:dp[i]的状态是长度为i+1的上升子序列中最小的值。 这里用到了STL lower_bound头文件是“algorithm”,函数lower_bound()在...
  • Since_natural_ran
  • Since_natural_ran
  • 2016年11月21日 19:13
  • 287

[PKU暑课笔记] 动态规划(二) 最长上升子序列 POJ1458最长公共子序列

五●例题 ●最长上升子序列 1、子问题:求以ak(k=1, 2, 3…N)为终点的最长上升子序列的长度(一个上升子序列中最右边的那个数,称为该子序列的 “终点”) 2、确定状态:子问题只和一个变量-...
  • qq_37672099
  • qq_37672099
  • 2017年08月04日 14:28
  • 146

poj 1836 (动态规划之最长上升子序列)

Alignment Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 12503   Acc...
  • my_acm
  • my_acm
  • 2014年05月11日 20:15
  • 602

POJ 2533 Longest Ordered Subsequence(最长上升子序列长度、O(nlogn))

题目链接: POJ 2533 Longest Ordered Subsequence 题意; 求最长上升子序列长度。 数据范围:n≤1000n\leq 1000 分析: 直接用O(nlog...
  • Ramay7
  • Ramay7
  • 2016年07月20日 23:30
  • 238

动态规划 最长上升子序列(LIS)

O(N2)写法: memset(dp, 0, sizeof(dp)) for(i = 0; i          dp[i]= 1;          for(j= 0; j           ...
  • Strokess
  • Strokess
  • 2016年07月27日 16:44
  • 2965

最长上升子序列的两种算法

最长上升子序列英文全称:Longest Increasing Subsequence 一.O(n*n)算法,dp[i]表示以ai为末尾的最长上升子序列的长度,而以ai结尾的最长上升子序列有两种:1...
  • qq_34681949
  • qq_34681949
  • 2016年08月11日 21:21
  • 4274

poj 2533(最长上升子序列)(n^2 ) 和 nlogn的算法

题目链接:点击打开链接 题目大意:略 题目分析:1.用n平方的做法,枚举以data【i】为结尾的子序列,向前查找,比data【i】小并且dp【j】比dp【i】小的 新手代码: #include #i...
  • u011613321
  • u011613321
  • 2013年08月26日 15:27
  • 752

[bzoj3173][TJOI2013]最长上升子序列

题目大意共n次操作,第i次操作在第xi个数后插入数字i并询问当前最长上升子序列。 n...
  • WerKeyTom_FTD
  • WerKeyTom_FTD
  • 2016年02月14日 11:30
  • 564
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:poj 1887 Testing the CATCHER_最长上升子序列
举报原因:
原因补充:

(最多只允许输入30个字)