二分貪心 U

2021-07-31 15:00:35 字數 637 閱讀 2152

題目要求:

小鮑勃喜歡和他的磚塊一起玩。他將磚塊放在另一塊上,並建立不同高度的堆垛。「看,我已經建了一堵牆!」他告訴他的姐姐愛麗絲。「呵呵,你應該把所有的堆疊都一樣高,然後你會有乙個真正的牆壁。」她反駁道。經過一番考慮後,鮑勃看到她是對的。所以他開始重新排列磚塊,乙個接乙個,所有的堆疊都是相同的高度。但是,由於鮑勃懶惰,他想用最少數量的磚塊來做到這一點。你能幫我嗎? 

題目思路:

要找最少移動數,就只要把大於平均數的數,給小於平均數的數勻幾個。所以只要求出大於平均數的數減去平均數的和就能求出最小移動數。

細節處理

幾個量的初值應該在while內賦值,防止錯誤答案。

#include

using

namespace std;

intmain();

while

(cin>>n)

sum=s/n;

for(i=

0;in++;

}for

(i=0

;ireturn0;

}

感悟:注意賦值位置的問題,注意細節處理。

二分貪心 21

題目大概 有n堆積木,積木高度不同,每個小方塊高度相同。問,最少移動多少小方塊,使得這些積木堆高度相等。思路 先求這些積木的平均數,在把所有的高度與平均數的差值加起來,最後除2,就是最少移動的方塊數。感想 這個題有一點很坑人,最後輸出的時候有乙個小點,不注意看看不到。include include ...

二分貪心 E

題目 輸入n和c,n代表有n間屋子c代表有c頭牛,然後輸入n個數代表這n間房子的座標,牛不喜歡這個布局,一進去就會很暴躁,所以要把牛分的盡可能的遠求最近兩頭牛的最大距離。解題思路 建立乙個陣列存這些房子的座標,然後用sort將這些座標排序,然後令l 0,r a n mid l r 2,先用mid當作...

二分貪心 T

題目 有1 1,2 2,3 3,4 4,5 5,6 6大小的盒子,要把它們裝到6 6的盒子裡,它們的高度都是相同的,用最少的6 6盒子把所有尺寸的盒子都裝起來。解題思路 6 6,5 5以及4 4尺寸的物品每個物品需要占有乙個箱子,3 3的物品乙個箱子可以放4個,2 2的物品箱子可以放9個,1 1的可...