1 条题解
-
0
C++ :
#include<bits/stdc++.h> using namespace std; const int N=10010; int A[N],dp[N]; int main() { int n; cin>>n; for(int i=1; i<=n; i++) { cin>>A[i]; } int ans=-1; //记录最大的dp[i] for(int i=1; i<=n; i++) { //按顺序计算出dp[i]的值 dp[i]=1; //边界初始条件(即先假设每个元素自成一个子序列) for(int j=1; j<i; j++) { if(A[i]>A[j]&&(dp[j]+1>dp[i])) { dp[i]=dp[j]+1; //状态转移方程,用以更新dp[i] } } ans=max(ans,dp[i]); } cout<<ans<<endl; return 0; }
- 1
信息
- ID
- 2655
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者