傳送們:5256
他讓求至少可以改變幾個數讓他們單調遞增
我們可以處理一下-.-讓每乙個數都減去i(這樣在後面求出的最長遞增子串行的每幾個數之間都有相應的空位使他變過來)
然後求最長遞增子串行就可以啦-.-如:4
2 3 3 4
變為2 2 1 1
最長遞增子串行為2,2 或1 ,1---
我們就可以變為2 3 4 5或1 2 3 4(變2個(4-2))
再如:2 3 3 5
變為:2 2 1 2
最長遞增子串行為2 ,2,2
我們就把那個1也變為2--(變1個(4-3))
然後就是
2 2 2 2
還原為2 3 4 5
**:
#include#include#includeusing namespace std;
int a[100100],shu[100100],kp;
void s(int xx)
int main()
HDU 5256 序列變換
題意 我們有乙個數列a1,a2.an,你現在要求修改數量最少的元素,使得這個數列嚴格遞增。其中無論是修改前還是修改後,每個元素都必須是整數。請輸出最少需要修改多少個元素。思想 第i個位置到第i k個位置可以使當中k 1個相等的數通過變換滿足題意,首先把i位置上的數減去i,消除位置的影響 1 2 4 ...
hdu5256 序列變換 dp LIS
點選開啟鏈結 思路 lis的變形,唯一不同的是條件a i i a j j 1,i j。因為要確保這兩個元素之間能插入i j 1個元素 每個數先減去它的下標,防止下面的情況發生 加入序列是1,2,2,2,3,這樣求上公升子串行是3,也就是要修改2個,但是中間的兩個2,變化範圍又不能超過 1,3 那麼這...
HDU 5256 序列變換 線性DP
我們有乙個數列a1,a2.an,你現在要求修改數量最少的元素,使得這個數列嚴格遞增。其中無論是修改前還是修改後,每個元素都必須是整數。請輸出最少需要修改多少個元素。input 第一行輸入乙個t 1 t 10 表示有多少組資料 每一組資料 第一行輸入乙個n 1 n 105 表示數列的長度 第二行輸入n...