• 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;
    }
    
    兴许青竹早凋,碧梧已僵,人事本难防。
  • 相关阅读:
    C# 动态加载卸载 DLL
    C# 判断文件编码
    win10 uwp 如何拖动一个TextBlock的文字到另一个TextBlock
    C# TextBlock 上标
    PHP curl_getinfo函数
    PHP curl_file_create函数
    PHP curl_errno函数
    PHP curl_error函数
    PHP curl_escape函数
    PostgreSQL Schema
  • 原文地址:https://www.cnblogs.com/Rorschach-XR/p/10969117.html
Copyright © 2020-2023  润新知