hdu 4512 吉哥系列故事——完美队形I(最长公共上升自序加强版)
2017-04-23 13:13
190 查看
首先要去学习最长公共上升子序列LCIS。然后是对n*n效率的算法进行优化,这里要注意的是能够求出来的序列中间能够有一个最高的。刚開始将输入的数组进行逆置,写下来发现这可能存在问题。
只是详细是什么也没有细致想明确。
只是详细是什么也没有细致想明确。
#include<bits/stdc++.h> using namespace std; int dp[300][300],a[300]; int main() { int n,_,i,j,k,ans,mx,t; scanf("%d",&_); while(_--) { scanf("%d",&n); for(i=1; i<=n; i++) { scanf("%d",&a[i]); } memset(dp,0,sizeof(dp)); ans=1; for(i=1; i<=n; i++) { mx=0; for(j=n; j>i; j--) { dp[i][j]=dp[i-1][j]; if(a[i]>a[j]&&mx<dp[i-1][j]) mx=dp[i-1][j]; if(a[i]==a[j]&&dp[i][j]<mx+1) dp[i][j]=mx+1; if(2*dp[i][j]>ans) ans=2*dp[i][j]; for(k=i; k<j; k++) if(a[k]>a[j]) { if(2*dp[i][j]+1>ans) ans=dp[i][j]*2+1; } } } printf("%d\n",ans); } return 0; }
相关文章推荐
- hdu 4512 吉哥系列故事——完美队形I(最长公共上升自序加强版)
- hdu 4512 吉哥系列故事——完美队形I(最长公共上升自序加强版)
- [HDU 4512] 吉哥系列故事——完美队形I 最长上升公共子序列
- HDU-4512 吉哥系列故事——完美队形I 最长公共上升子序列
- HDU 4512 吉哥系列故事——完美队形I(LCIS最长公共上升子序列)
- hdu 4512 吉哥系列故事——完美队形I(最长公共上升序列)
- hdu 4512 吉哥系列故事——完美队形I(最长上升公共子序列)
- hdu 4512 吉哥系列故事——完美队形I(最长公共上升序列)
- hdu 4512 吉哥系列故事——完美队形I(最长上升公共子串)
- hdu 4512 吉哥系列故事——完美队形I(最长公共上升子序列)
- HDU 4512 吉哥系列故事――完美队形I(最长公共上升子序列)
- HDU - 4512吉哥系列故事――完美队形I最大上升公共子序列
- HDU 4512 吉哥系列故事——完美队形I LCIS 最长递增公共子序列
- HDU4512-吉哥系列故事——完美队形I(最长公共上升子序列)
- HDU4512 - 吉哥系列故事——完美队形I(LCIS最长公共上升子序列的巧妙应用)
- HDU 4512 吉哥系列故事——完美队形I
- hdu----(4513)吉哥系列故事——完美队形II(manacher(最长回文串算法))
- 吉哥系列故事——完美队形II - HDU 4513 最长回文串
- hdu 4513 吉哥系列故事——完美队形II(最长回文串)
- hdu 4513 吉哥系列故事——完美队形II(最长回文串)