uva 10635 - Prince and Princess LCS

简介:

  利用重新编号将LCS变成LIS,即将第一个重新编号成1-n,在第二个中找LIS

  

/*
author:jxy
lang:C/C++
university:China,Xidian University
**If you need to reprint,please indicate the source**
*/
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std;
int order[63010];
int King[63010],lenp,lenk;
int n;

int g[63010];
int LIS(int n,int A[],int INF)
{
    int i;
    for(i=1;i<=n;i++)g[i]=INF;
    int ans=0;
    for(i=1;i<=n;i++)
    {
        if(A[i]==0)continue;
        int k=lower_bound(g+1,g+n+1,A[i])-g;
        g[k]=A[i];
        ans=max(ans,k);
    }
    return ans;
}

int main()
{
    int T,C=0;
    scanf("%d",&T);
    while(T--)
    {
        memset(order,0,sizeof(order));
        scanf("%d%d%d",&n,&lenp,&lenk);
        n*=n;
        int i,j;
        lenp++;lenk++;
        for(i=1;i<=lenp;i++)
        {
            scanf("%d",&j);
            order[j]=i;
        }
        for(i=1;i<=lenk;i++)
        {
            scanf("%d",&j);
            King[i]=order[j];
        }
        printf("Case %d: %d\n",++C,LIS(lenk,King,n+1));
    }
}

目录
相关文章
UVa389 - Basically Speaking
UVa389 - Basically Speaking
41 0
uva127 "Accordian" Patience
uva127 "Accordian" Patience
47 0
uva167 The Sultan's Successors
uva167 The Sultan's Successors
50 0
|
人工智能 BI 算法
uva 10317 Equating Equations
点击打开链接uva 10317 思路:搜索 分析: 1 给定一个等式判断两边是否相等,如果一个等式相等那么通过移项到同一边可以得到正数的和等于负数 2 那么通过分析1我们可以知道我们可以求出这个等式的所有数字的和,判断和是否为偶数。
770 0
uva 1121 - Subsequence
点击打开链接uva 1121 思路:二分查找 分析: 1 题目要求找到一个最短的子序列长度并且这个子序列的和大于等于给定的s 2 如果按照常规的做法枚举起点和终点的话肯定是会超时的。
935 0

热门文章

最新文章

下一篇
开通oss服务