題目描述一座有n層的教學樓裡有一些學生,第i(0 ≤ i < n)層有studentsi個學生。你被給定了乙個數k,如果第i層有x個學生,那麼這一層需要⌈x/k⌉個老師。你可以調整每個學生的樓層,但是每個學生至多只能調整一層,就是說第i層的學生只能去第i − 1層(如果有的話)、第i層、第i + 1層(如果i + 1 < n)。現在你希望請最少的老師教你的學生,請求出這個最小值。
輸入格式
第1行:1個整數n,表示樓層數
第2行:n個整數,表示每層樓的人數
第3行:1個整數k
輸出格式
第1行:1個整數,表示答案
輸入樣例 3
3 6 3
輸出樣例
樣例說明
所有學生都去第1層,只需要3名老師
題解:貪心
因為向上取整,所以每一層的人數為k的倍數是最優。每次k個k個地分組,將分好組的人去除。
同時考慮第i-1層、第i層和第i+1層,保證每次調整後第i-1層的人數為0。
更詳細的看**。
#includeconst int n=100005;
int n ,k, sum, w, peo[n];
int main()
else peo[i]=0, peo[i+1]=w;//第i+1層移了些人去第i層湊足k個人 }
if( peo[n] ) sum++;
printf( "%d\n", sum );
}
遊老師模擬賽5 27
1.tower 題目描述 平面上有n個整點。如果將點 x0,y0 移動到 x1,y1 則需要的代價為 x0 x1 y0 y1 求使得k k 1 n 個點在同一位置上最少需要的代價。輸入檔案 第一行1個正整數n 接下來n行,每行兩個正整數xi和yi,為第i個點的座標,不超過106。輸出檔案 輸出共n行...
noip模擬賽 密碼
表示沒看懂演算法3 問題描述 有壓迫,就有反抗。mored的寵物在法庭的幫助下終於反抗了。作為乙隻聰明的寵物,他打算把魔法使mored的魔法書盜去,奪取mored的魔法能力。但mored怎麼會讓自己的魔法書輕易地被盜取?mored在魔法書上設定了乙個密碼鎖,密碼鎖上有乙個問題。施以斯臥鋪魔法吧,你有...
NOIP模擬賽 分錢
題目描述 兩個人在街上撿到了一些錢,這些錢共有n張,他們等了很久也沒有等來失主,於是決定把錢平分。但錢可能無法平分。他們先把能夠平分的錢盡量先平分了,使得剩下不能平分的錢盡量少。這些不能平分的錢怎麼辦呢他?他們決定拿去賭場裡面賭一把。他們運氣太好了,那些不能平分的錢變成了雙倍,於是他們就把那個錢分了...