コード例 #1
0
int main (void)
{
    std::vector<int> A = { 10, 22, 9, 33, 21, 50, 41, 60 };
    auto lis = longest_increasing_subsequence(A);
    std::cout << lis << std::endl;
    return 0;
}
コード例 #2
0
int bidirection_subsequence(int *s, int n, int& idx)
{   //序列s长度为n+1,下标从1到n,空出0位置
//返回序列s的最长双向子序列的长度,以及这个元素的下标idx
    int length(0);
    for(int i = 1; i <= n; ++ i) {
        int lft = longest_increasing_subsequence(s, 1, i);
        int rgt = longest_decreasing_subsequence(s, i, n);
        if(length < lft + rgt)
            length = lft + rgt - 1, idx = i;
    }
    return(length);
}
コード例 #3
0
int
main()
{
    int	 max=0;
    char str[100];
    printf("String : ");
    scanf("%s", str);

    max = longest_increasing_subsequence(str);
    printf("Length of longest increasing subsequence	:   %d\n", max);

    return max;
}
コード例 #4
0
ファイル: p1533.cpp プロジェクト: dploop/oj
int main() {
	const int MAXN = 100010;
	static int array[MAXN], array_size;
	static int tail[MAXN], tail_size;
	for (; EOF!=scanf("%d", &array_size); ) {
		for (int i=0; i < array_size; ++i) {
			scanf("%d", &array[i]);
		}
		longest_increasing_subsequence(
			array, array_size, tail, tail_size);
		printf("%d\n", tail_size);
	}
	return 0;
}
コード例 #5
0
int main(int argc, char *argv[]) {
  int i, result;
  int output[9];
  int input[9] = { 1,2,1,5,2,4,6,7,3 };

  for (i=0; i<9; i++)
    printf("%d ", input[i]);
  printf("\n");

  result = longest_increasing_subsequence(input, 9, output);
  printf("result: %d\n", result);
  for (i=0; i<result; i++)
    printf("%d ", output[i]);

  return EXIT_SUCCESS;
}
コード例 #6
0
int main()
{
        int A[SIZE];
        int i;

        gen_values(A, SIZE);

        /* DEBUG */
        for (i = 0; i < SIZE; ++i)
                printf("%d ", A[i]);
        printf("\n");

        int len = longest_increasing_subsequence(A, SIZE);
        printf("Length of LIS: %d\n", len);

        return 0;
}
コード例 #7
0
int main(){
	int arr[] = { 10, 22, 9, 33, 21, 50, 41, 60 };
  	int n = sizeof(arr)/sizeof(arr[0]);
  	printf("Length of LIS is %d\n", longest_increasing_subsequence( arr, n ) );
  	
  	{
  		char X[] = "AGGTAB";
  		char Y[] = "GXTXAYB";
  
  		int m = strlen(X);
  		int n = strlen(Y);
  
  		printf("Length of LCS is %d\n", longest_common_subs( X,m, Y, n) );
	}
	
	{
		int cost[5][5] = { {1, 2, 3},
                      	 {4, 8, 2},
                      	 {1, 5, 3} };
   		printf("\n%d ", min_cost(cost, 2, 2));
	}
	
	{
		int arr[] = {1, 2, 5};
    	int m = sizeof(arr)/sizeof(arr[0]);
    	int n = 11;
    	printf("\ncoin change : %d ", coin_change(arr, m, n));
	}
	
	{
		int val[] = {60, 100, 120};
    	int wt[] = {10, 20, 30};
    	int  W = 50;
    	int n = sizeof(val)/sizeof(val[0]);
    	printf("\n%d", knapsack(wt, W, val, n));
	}
	
	{
		char seq[] = "GEEKS FOR GEEKS";
    	printf ("\nThe lnegth of the LPS is %d", longest_palindromic_subs(seq));
	}
	
	{
		int arr[] = {1, 5, 8, 9, 10, 17, 17, 20};
    	int size = sizeof(arr)/sizeof(arr[0]);
    	printf("\nMaximum Obtainable Value is %d\n", cut_rod(arr, size));
	}
	
	{
		int arr[] = {1, 101, 2, 3, 100, 4, 5};
    	int n = sizeof(arr)/sizeof(arr[0]);
    	printf("\nSum of maximum sum increasing subsequence is %d\n",
           max_increasing_subs( arr, n ) );
	}
	
	{
		int arr[] = {0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5,
              13, 3, 11, 7, 15};
  		int n = sizeof(arr)/sizeof(arr[0]);
  		printf("\nLength of LBS is %d\n", bitonic_subs( arr, n ) );
	}
	
	{
		char str[] = "ababbbabbababa";
   		printf("Min cuts needed for Palindrome Partitioning is %d",
           min_pal_partition(str));
	}
	
	{
		int arr[] = {1, 3, 6, 1, 0, 9};
    	int size = sizeof(arr)/sizeof(int);
    	printf("\nMinimum number of jumps to reach end is %d ", min_jumps(arr,size));
	}
	{
		int n = 150;
		printf("\n%d ugly number is : %d",n,find_nth_ugly(n));
	}
	
	{
		int M[6][5] =  {{0, 1, 1, 0, 1}, 
        	           {1, 1, 0, 1, 0}, 
            	       {0, 1, 1, 1, 0},
                	   {1, 1, 1, 1, 0},
                   	   {1, 1, 1, 1, 1},
                	   {0, 0, 0, 0, 0}};
                
  	    print_max_square(M,6,5);
	}
	
	{
		char str[] = "forgeeksskeegfor";
    	printf("\nLength is: %d\n", print_longest_pal( str ) );
	}
	return 0;
}