NOIP模擬賽 老師

2021-08-07 11:04:18 字數 785 閱讀 8716

題目描述

一座有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張,他們等了很久也沒有等來失主,於是決定把錢平分。但錢可能無法平分。他們先把能夠平分的錢盡量先平分了,使得剩下不能平分的錢盡量少。這些不能平分的錢怎麼辦呢他?他們決定拿去賭場裡面賭一把。他們運氣太好了,那些不能平分的錢變成了雙倍,於是他們就把那個錢分了...