zoukankan      html  css  js  c++  java
  • hdu 1423 GCIS 模板题

    //GCIS

     1 #include "iostream"
     2 #include "cstdio"
     3 #include "cstring"
     4 #include "algorithm"
     5 using namespace std;
     6 int dp[510], Max;
     7 int s1[510], s2[510];
     8 int len1, len2;
     9 
    10 int main()
    11 {
    12     int T, i, j;
    13     scanf("%d", &T);
    14     while(T--) {
    15         scanf("%d", &len1);
    16         for(i = 1; i <= len1; ++i)
    17             scanf("%d", &s1[i]);
    18         scanf("%d", &len2);
    19         for(i = 1; i <= len2; ++i)
    20             scanf("%d", &s2[i]);
    21         memset(dp, 0, sizeof(dp));
    22         for(i = 1; i <= len1; ++i) {
    23             Max = 0;
    24             for(j = 1; j <= len2; ++j) {
    25                 if(s1[i] > s2[j])
    26                     Max = max(Max, dp[j]);
    27                 else if(s1[i] == s2[j])
    28                     dp[j] = max(dp[j], Max + 1);
    29             }
    30         }
    31         int res = 0;
    32         for(i = 1; i <= len2; ++i) {
    33             res = max(res, dp[i]);
    34         }
    35         printf("%d
    ", res);
    36         if(T)
    37             printf("
    ");
    38     }
    39 }
     1 #include "bits/stdc++.h"
     2 using namespace std;
     3 int T;
     4 int len1, len2;
     5 int s1[510], s2[510];
     6 int dp[510][510];
     7 
     8 int main()
     9 {
    10     scanf("%d", &T);
    11     while(T--) {
    12         memset(dp, 0, sizeof(dp));
    13         scanf("%d", &len1);
    14         int i, j;
    15         for(i = 1; i <= len1; ++i) {
    16             scanf("%d", &s1[i]);
    17         }
    18         scanf("%d", &len2);
    19         for(j = 1; j <= len2; ++j) {
    20             scanf("%d", &s2[j]);
    21         }
    22 
    23         for(i = 1; i <= len1; ++i) {
    24             int k = 0;
    25             for(j = 1; j <= len2; ++j) {
    26                 if(s1[i] == s2[j]) {
    27                     dp[i][j] = dp[i - 1][k] + 1;
    28                 }
    29                 else {
    30                     dp[i][j] = dp[i - 1][j];
    31                     if(s1[i] > s2[j] && dp[i - 1][k] < dp[i - 1][j]) {
    32                         k = j;
    33                     }
    34                 }
    35 //                printf("dp[%d][%d] == %d
    ", i ,j, dp[i][j]);
    36             }
    37         }
    38 
    39         int res = 0;
    40         for(j = 1; j <= len2; ++j) {
    41             res = max(res, dp[len1][j]);
    42         }
    43         printf("%d
    ", res);
    44         if(T) {
    45             printf("
    ");
    46         }
    47     }
    48 }
    49 //2
    50 //5
    51 //1 4 2 5 -12
    52 //4
    53 //-12 1 2 4
  • 相关阅读:
    November 07th, 2017 Week 45th Tuesday
    November 06th, 2017 Week 45th Monday
    November 05th, 2017 Week 45th Sunday
    November 04th, 2017 Week 44th Saturday
    November 03rd, 2017 Week 44th Friday
    Asp.net core 学习笔记 ( Area and Feature folder structure 文件结构 )
    图片方向 image orientation Exif
    Asp.net core 学习笔记 ( Router 路由 )
    Asp.net core 学习笔记 ( Configuration 配置 )
    qrcode render 二维码扫描读取
  • 原文地址:https://www.cnblogs.com/AC-Phoenix/p/4297587.html
Copyright © 2011-2022 走看看