求助,第四个点WA

dp[i][j]表示前i项中第i项为周期的第j个数的最长子序列

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int n,k;
int a[2004];
int dp[2004][22];
int ans=0;
int t;
int main(){
    scanf("%d%d",&n,&t);
    for(int i=1;i<=n;i++){
        scanf("%d",&a[i]);
        dp[i][1]=1;
        for(int j=1;j<i;j++){
            if(a[j]<a[i]) {
                for(int k=t+2;k<=2*t;k++){
                    dp[i][k]=max(dp[i][k],dp[j][k-1]+1);
                }
                dp[i][1]=max(dp[i][1],dp[j][2*t]+1);
            }
            else if(a[j]>a[i]){
                for(int k=2;k<=t+1;k++){
                    dp[i][k]=max(dp[i][k],dp[j][k-1]+1);
                }
            }
        }
        for(int j=1;j<=2*t;j++) ans=max(ans,dp[i][j]);
    }
    printf("%d",ans);
    return 0;
}

2 条评论

  • 1

信息

ID
1686
难度
4
分类
动态规划 | 动态规划 | LIS 点击显示
标签
递交数
618
已通过
254
通过率
41%
被复制
3
上传者