給定乙個整數序列,輸出它的最長遞減(注意不是「不遞增」)子串行。
輸入包括兩行,第一行包括乙個正整數n(n<=1000),表示輸入的整數序列的長度。第二行包括用空格分隔開的n個整數,整數範圍區間為[-30000,30000]。
輸出為一行,最長遞減子串行的結果,數字間用空格分隔(測試case中只會有乙個最長遞減子串行)。
樣例輸入
89 4 3 2 5 4 3 2
樣例輸出
9 5 4 3 2
#include
#include
using namespace std;
int main()
for(int i=1;ifor(int j=0;j}}
int m=0,k;
for(int i=0;iif(d[i]>m)
stacks;
for(int i=k;i!=-1;i=p[i])//i=-1表示前面沒有比它還大的數
s.push(a[i]);
for(int i=0;im=s.top();
cout}cout<
CUMTOJ 求陣列的最長遞減子串行
給定乙個整數序列,輸出它的最長遞減 注意不是 不遞增 子串行。輸入包括兩行,第一行包括乙個正整數n n 1000 表示輸入的整數序列的長度。第二行包括用空格分隔開的n個整數,整數範圍區間為 30000,30000 輸出最長遞減子串行,數字之間有乙個空格。8 9 4 3 2 5 4 3 29 5 4 ...
最長遞減子串行
最長遞增子串行算過很多了?那我們這次來求個遞減的試試 第一行為乙個整數t,代表有t組測試資料。每組測試資料為乙個只含有字母和數字的字串 字串長度不超過1000 對於每組測試資料,輸出其最長遞減子串行的長度 要求以ascii碼進行比較且嚴格遞減 程式源 include using namespace ...
最長遞減子串行
最長遞減子串行 如果array i aarray j 第i個數的最長遞減子串行的長度 等於 i 1到最後乙個數的最長遞減子串行的長度 加 1 否則 最長遞減子串行的長度就是1 最後乙個數的最長遞減子串行的長度等於1,最開始的時候dp i 的值都為1 然後倒著求最長遞減子串行 如 3,8,7,5,4,...