- 爱国者的周期
- 2017-08-07 23:49:59 @
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 条评论
-
WiFi LV 8 @ 2017-08-11 18:30:40
dd
-
2017-08-09 19:14:25@
求大佬啊
- 1