zoukankan      html  css  js  c++  java
  • Match 基因匹配 题解(From luoguBlog)

    N<=20000!(N^2)的LCS要原地爆炸。

    去您妈的优化考场上有分就行TLE60挺值了嘿嘿嘿

    然而这显然是个板子 只不过像我这样见识短浅的蒟蒻不知道罢了

    其实就是优化lcs

    正解:

    某大佬的博客

    转化为lis后二分 复杂度nlogn。

    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int n,s1[100010],s2[100010],pos[20010][8],num[20010]={0};
    int tot=0,res[500010];
    int ans=1,f[500010];
    int main()
    {
    	//freopen("lis.out","w",stdout);
    	cin>>n;
    	n*=5;
    	for(int i=1;i<=n;i++)scanf("%d",&s1[i]);
    	for(int i=1;i<=n;i++)scanf("%d",&s2[i]),pos[s2[i]][++num[s2[i]]]=i;
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=5;j++)res[++tot]=pos[s1[i]][5-j+1];
    	/*cout<<endl;
    	for(int i=1;i<=tot;i++)cout<<res[i]<<' ';
    	cout<<endl;*/
        f[1]=res[1];
        for(int i=2;i<=tot;i++)
        {
        	if(res[i]>f[ans])
        	{
        		ans++;
        		f[ans]=res[i];
        	}
        	else
        	{
        		int loc=lower_bound(f+1,f+ans+1,res[i])-f;
        		f[loc]=res[i];
        	}
        }
    	cout<<ans<<endl;
    	return 0;
    }
    
    兴许青竹早凋,碧梧已僵,人事本难防。
  • 相关阅读:
    MySQL 之 创建千万数据测试
    MySQL中的各种引擎
    MySQL 之【约束】【数据库设计】
    MySQL 的增删改查
    SQL数据类型
    SQL 数据类型
    数据库
    摘要算法
    Python 标准库-json
    Python 标准库-sys
  • 原文地址:https://www.cnblogs.com/Rorschach-XR/p/10969117.html
Copyright © 2011-2022 走看看