nyoj See LCS again 760 (LCS&&LIS) 好题

原创 2015年11月20日 23:59:54

See LCS again

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
描述

There are A, B two sequences, the number of elements in the sequence is n、m;

Each element in the sequence are different and less than 100000.

Calculate the length of the longest common subsequence of A and B.

输入
The input has multicases.Each test case consists of three lines;
The first line consist two integers n, m (1 < = n, m < = 100000);
The second line with n integers, expressed sequence A;
The third line with m integers, expressed sequence B;
输出
For each set of test cases, output the length of the longest common subsequence of A and B, in a single line.
样例输入
5 4
1 2 6 5 4
1 3 5 4
样例输出
3
//函数lower_bound()在first和last中的前闭后开区间进行二分查找,
//返回大于或等于val的第一个元素位置。如果所有元素都小于val,
//则返回last的位置,且last的位置是越界的!返回查找元素的第一个
//可安插位置,也就是“元素值>=查找值”的第一个元素的位置

#include<stdio.h>
#include<string.h>
#include<algorithm>
#define N 100010
using namespace std;
int a[N];
int b[N];
int dp[N];
int main()
{
	int n,m,i,j;
	int x;
	while(scanf("%d%d",&n,&m)!=EOF)
	{
		memset(dp,0,sizeof(dp));
		for(i=1;i<=n;i++)
		{
			scanf("%d",&x);
			dp[x]=i;
		}
		int r=0;
		for(i=1;i<=m;i++)
		{
			scanf("%d",&x);
			if(dp[x])
				b[r++]=dp[x];
		}
		int p=0;
		dp[p++]=b[0];
		for(i=1;i<r;i++)
		{
			if(dp[p-1]<b[i])
				dp[p++]=b[i];
			else
			{
				x=lower_bound(dp,dp+p,b[i])-dp;
				dp[x]=b[i];
			}
		}
		printf("%d\n",p);
	}
	return 0;
}


HDU-balloons-求颜色最多的气球的颜色

问题及代码: /* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:HDU.cpp *作 者:单昕昕...
  • MIKASA3
  • MIKASA3
  • 2015年01月19日 14:26
  • 961

See You Again——我最后的汇编程序

汇编语言:课程设计2前言由于本人水平不够,这里的课程设计2的程序实现并没有像王爽书中所说的那样可以不依赖于操作系统运行。 这里的程序依然要在dos下运行,而且没有实现引导现有操作系统的功能。 该程...
  • wyf12138
  • wyf12138
  • 2017年01月18日 13:34
  • 302

HDU-动能定理-人的降落

问题及代码: /* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:E.cpp *作 者:单昕昕 *完成日...
  • MIKASA3
  • MIKASA3
  • 2015年02月03日 14:27
  • 642

NYOJ760-See LCS again,有技巧的暴力!

See LCS again 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 There are A, B two sequences, t...
  • NYIST_TC_LYQ
  • NYIST_TC_LYQ
  • 2016年11月09日 22:53
  • 166

NYOJ 1085 数单词 (AC自动机模板题)

数单词 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 为了能够顺利通过英语四六级考试,现在大家每天早上都会早起读英语。 LYH本来以为自己在6月份的考试中可以...
  • LYHVOYAGE
  • LYHVOYAGE
  • 2014年09月29日 08:20
  • 1516

LCS算法的两种JAVA实现方式

给定字符串A,B Solution  I: 1.构造数组 c i  j 描述A串的前i位和B串的前J位的LCS长度 2.构造数组 trace  i  j  描述max相应位置得到的长度是由哪一步得出的...
  • Lyz1052
  • Lyz1052
  • 2015年06月14日 12:39
  • 684

NYOJ 21 三个水杯

一开始都没想到使用BFS做的。。。。 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 给出三个水杯,大小不一,并且只有最大...
  • u011694809
  • u011694809
  • 2015年06月02日 09:54
  • 728

LCS问题,JAVA实现

本文参照July的博客,第十一章,只给出个人理解和java实现
  • kringpin_lin
  • kringpin_lin
  • 2014年06月25日 20:49
  • 928

LCS算法的C++实现

最长公共子序列LCS的C++实现
  • zmq570235977
  • zmq570235977
  • 2015年11月15日 15:02
  • 1660

【动态规划】LCS算法:求两字符串最大公共字符串(连续)

LCS算法的应用 问题描述:求两字符串的连续最大公共子字符串 思路:根据上文LCS算法求解两字符串的最大公共子序列(不连续),可以得到求解连续子字符串的启示,如图所示,构造LCS矩阵vec,将两个...
  • yebanxin
  • yebanxin
  • 2016年08月12日 12:46
  • 1782
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:nyoj See LCS again 760 (LCS&&LIS) 好题
举报原因:
原因补充:

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