問題描述
給定有 n 個數的 a 序列:a1,a2,a3…an 。對於這個序列,我們想得到乙個子串行 ap1,ap2⋯api⋯apm(1≤p1< p2<⋯pi<⋯< pm≤n),滿足 ap1≥ap2≥⋯≥api≤⋯≤apm 。從 a 序列最少刪除多少元素,可以得到我們想要的子串行。
輸入格式
第一行輸入乙個整數 n,代表 a 序列中數字的個數。第二個輸入 n 個整數,代表a1,a2 ,a3 …an。(1≤n≤1000,1≤ai≤10000)
輸出格式
輸出需要刪除的元素個數,佔一行。
樣例輸入
7 3 2 4 1 2 5 3
樣例輸出
2
#includeusing namespace std;
int n;
//dp1從前到後的lds,dp2從後往前的lds
int dp1[1010]=,dp2[1010]=;
int a[1010];
void lds1()
} }}void lds2()
} }}int main()
lds1();
lds2();
int ans=0x3f3f3f3f;
for(int i=1;i<=n;i++)
printf("%d\n",ans);
return 0;
}
計蒜客習題 刪除最小元素
開乙個二維dp陣列dp 10005 3 第二維儲存的是這個數列的兩種狀態所對應的最大值,和lis思路比較像。開始的時候忽視了全部降序的情況,後來把兩個維度全部算一遍就出來了。include include include include include include include include...
計蒜客 元素移除
給定乙個陣列和乙個數 該數不一定在陣列中 從陣列裡刪掉這個數字,返回剩下的陣列長度。如 a a 1,2,3,4,5,要刪除數字 33,那麼返回陣列長度為 44。親愛的小夥伴們,題目是不是很簡單呢?其中,n代表陣列長度,elem代表要刪掉的元素。輸入格式 第一行輸入乙個數 n 1 n 100 接下來一...
計蒜客 配對元素
給出2個序列a b 從a b中各選出n個元素進行一一配對 可以不按照原來在序列中的順序 並使得所有配對元素差的絕對值之和最大。輸入格式 輸入的第1行為1個整數n 第2行包含n個整數,題目中的a序列。第3行包含n個整數,題目中的b序列。輸出格式 乙個數,最大配對 3與6配對,2與7配對,5與4配對,6...