方伯伯在自己的農田邊散步,他突然發現田裡的一排玉公尺非常的不美。
這排玉公尺一共有n株,它們的高度參差不齊。
方伯伯認為單調不下降序列很美,所以他決定先把一些玉公尺拔高,再把破壞美感的玉公尺拔除掉,使得剩下的玉公尺的高度構成乙個單調不下降序列。
方伯伯可以選擇乙個區間,把這個區間的玉公尺全部拔高1單位高度,他可以進行最多k次這樣的操作。拔玉公尺則可以隨意選擇乙個集合的玉公尺拔掉。
問能最多剩多少株玉公尺,來構成一排美麗的玉公尺。
第1行包含2個整數n,k,分別表示這排玉公尺的數目以及最多可進行多少次操作。
第2行包含n個整數,第i個數表示這排玉公尺,從左到右第i株玉公尺的高度ai。
輸出1個整數,最多剩下的玉公尺數。
3 12 1 3
31 < n < 10000,1 < k ≤ 500,1 ≤ ai ≤5000
題解
彷彿耳熟能詳的一道題,但是從來沒有讀過題面,原來是二維樹狀陣列優化dp。f[i][j]表示到第i根玉公尺用j次拔高最多能留下多少根,顯然區間選取從某點到n更有利於後面的點被選取(又是貪心思路),可寫出f[i][j]=maxint lowbit(int
x)void update(int x,int y,int
z)int query(int x,int
y)inline
intr()
return
zty;
}int
main()
jd+=k;
for(int i=1;i<=n;i++)
for(int j=k+1;j>=1;j--)
printf("%d
",jg);
return0;
}
方伯伯的玉公尺田 SCOI2014
方伯伯在自己的農田邊散步,他突然發現田裡的一排玉公尺非常的不美。這排玉公尺一共有 n 株,它們的高度參差不齊。方伯伯認為單調不下降序列很美,所以他決定先把一些玉公尺拔高,再把破壞美感的玉公尺拔除掉,使得剩下的玉公尺的高度構成乙個單調不下降序列。方伯伯可以選擇乙個區間,把這個區間的玉公尺全部拔高 1 ...
SCOI2014 方伯伯的玉公尺田
題目 首先乙個很顯然的事實,我們所有操作的區間的右端點都是 n 即我們操作的區間是一些字尾 這個很好理解啊,我們使得乙個區間整體增加是為了盡可能和前面的點形成不降子串行,並沒有必要僅提公升一段區間的高度使得這一段難以和後面的接上,所以直接操作到 n 一定是最優的。設 dp 表示前 i 個字尾操作共操...
SCOI2014 方伯伯的玉公尺田
方伯伯在自己的農田邊散步,他突然發現田裡的一排玉公尺非常的不美。這排玉公尺一共有n株,它們的高度參差不齊。方伯伯認為單調不下降序列很美,所以他決定先把一些玉公尺拔高,再把破壞美感的玉公尺拔除掉,使得剩下的玉公尺的高度構成乙個單調不下降序列。方伯伯可以選擇乙個區間,把這個區間的玉公尺全部拔高1單位高度...