zoukankan      html  css  js  c++  java
  • Uva 10635 Prince and Princess (LCS变形LIS)

    直接LCS是时间复杂度是O(p*q)的,但是序列元素各不相同,只要把其中一个序列映射成有序的,

    另外一个序列再做相同的映射,没有的直接删掉,就变成了求另一个序列LIS。

    #include<bits/stdc++.h>
    using namespace std;
    
    int read()
    {
        char c; while(c=getchar(),c<'0'||c>'9');
        int re = c-'0';
        while(c=getchar(),c>='0'&&c<='9') re = re*10+c-'0';
        return re;
    }
    
    const int maxn = 250*250;
    
    int mp[maxn];
    
    int S[maxn],g[maxn];
    
    //#define LOCAL
    int main()
    {
    #ifdef LOCAL
        freopen("in.txt","r",stdin);
    #endif
        int T; scanf("%d",&T);
        for(int ks = 1; ks <= T; ks++){
            int n, p, q; scanf("%d%d%d",&n,&p,&q);
            memset(mp,-1,sizeof(mp));
            for(int i = 0; i <= p; i++) {
                mp[read()] = i;
            }
            int c = 0;
            for(int i = 0; i <= q; i++){
                int x = mp[read()];
                if(~x){
                    S[c++] = x;
                }
            }
            memset(g,0x3f,sizeof(int)*(c+1));
            int ans = 0;
            for(int i = 0; i < c; i++){
                int k = lower_bound(g+1,g+1+i,S[i])-g;
                g[k] = S[i];
                ans = max(ans,k);
            }
            printf("Case %d: %d
    ",ks,ans);
        }
        return 0;
    }
  • 相关阅读:
    spring的了解以及简单框架的搭建
    动态代理
    struts2标签(转)
    使用OGNL表达式
    struts2 ValueStack
    struts2框架xml验证
    struts2 validate手动验证
    struts2自定义拦截器
    struts2文件上传
    当findById(Integer id)变成String类型
  • 原文地址:https://www.cnblogs.com/jerryRey/p/4846901.html
Copyright © 2011-2022 走看看