題目大意:
http://codevs.cn/problem/1044/
第一問題就是求序列的最長遞減數列的長度,第二問就是求數列的最長遞增序列的長度。
代碼:


#include <iostream>using namespace std;int arr[30] = {0}; int dp[30] = {0}; int mp[30] = {0};int main() {int n,count = 1,ans1 =0,ans2 = 0;while(cin >> n){arr[count] = n;count++;}count--;dp[0] = 0;mp[0] = 0;for(int i = 1; i <= count; i++){for(int j = i; j >= 1; j--){if(arr[i] <= arr[j])ans1 = max(ans1,dp[i] = max(dp[j]+1,dp[i]));}}cout << ans1 << endl;for(int i = 1; i <= count; i++){for(int j = 0; j < i; j++){if(arr[i] > arr[j])ans2 = max(ans2,mp[i] = max(mp[i],mp[j]+1));}}cout << ans2;return 0; }
?