zoukankan      html  css  js  c++  java
  • NYOJ 17(LIS转为LCS,但是MLE)

    #include<stdio.h>
    #include<string.h>
    #define N 10001
    #define MAX(m,n) ((m)>(n)?(m):(n))
    char a[N],b[N];
    int d[N][N];
    int cmp(const void *a,const void *b)
    {
    	return *(char *)a-*(char *)b;
    }
    int My_Cancel(int len)/*删除相邻的同样数据,不相邻的并不删除,即aabbab,输出abab不是
    
    ab,成为单调递增,否则成为单调不减序列**/
    {
    	int i,j=0;
    	for(i=0;i<len;i++)
    	{
    	  if(a[i+1]==a[i])
    	   continue;
    	  else
    	  {
    	   a[j+1]=a[i+1];
    	   j++;
    	  }
    	}
    	return j;
    }
    int LISL(int len)
    {
    	int i,j;
    	for(i=1;i<=len;i++)
    		d[i][0]=0;
    	for(j=1;j<=len;j++)
    		d[0][j]=0;
    	for(i=1;i<=len;i++)
    		for(j=1;j<=len;j++)
    			if(a[i-1]==b[j-1])
    				d[i][j]=d[i-1][j-1]+1;
    			else 
    				d[i][j]=MAX(d[i][j-1],d[i-1][j]);
    	return d[len][len];
    }
    int main()
    {
    	int T,len1,len2;int i,j;
    	scanf("%d%*c",&T);
    	while(T--)
    	{
    		memset(a,0,sizeof(a));
    		memset(b,0,sizeof(b));
    		memset(d,0,sizeof(d));
    		scanf("%s%*c",a);
    		len1=strlen(a);
    		len2=My_Cancel(len1);
    		memcpy(b,a,sizeof(a));
    		qsort(b,len2,sizeof(char),cmp);
    		printf("%d\n",LISL(len2));
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    sync.Once.Do(f func())
    协程
    Qt 线程基础(QThread、QtConcurrent、QThreadPool等)
    linux下valgrind的使用概述
    QT--QSocketNotifier类介绍
    QThreadPool类和QtConcurrent命名空间
    联想电池维修
    asm
    tapset::iosched(3)
    systemtap --diskio
  • 原文地址:https://www.cnblogs.com/hxsyl/p/2516377.html
Copyright © 2011-2022 走看看