題目簡述:移動磚塊使其變成相同的高度,求最少的移動步數。
解題思路:
1、首先移動磚塊變成相同的高度,即變成平均值。所以先對所有磚塊的高度求和再取平均值。
2、對磚塊的高度用sort進行排序。
3、總移動的次數f初值為0,高度小於平均值的磚塊,用平均值減去該高度即為應該移動的次數e(每次移動一塊),f=f+e,一直到平均值或高於平均值結束,即所求最少次數。
4、輸出最少次數。
源**:
#include
using
namespace std;
intmain
()sort
(a.begin
(),a.
end());
for(i=
0;isum=sum+a[i];
c=sum/n;
for(i=
0;i}for
(i=d;icout<<
"set #"
cout<<
"the minimum number of moves is "
<"."
}
ACM書中題目 K
題目要求 乙個陣列中的資料,重新排列,使每個元素相等,要移動的最小的數。題目思路 定義陣列存放元素,利用while迴圈,輸入元素,並將所有元素求和,求取平均數。判斷每個元素與平均數的大小,如果元素小於平均數則取二者之差,累加所有小於平均數的元素所得差。細節處理 初始化元素和以及平均數在while迴圈...
《ACM程式設計》書中題目 J
題目簡要 輸入從乙個整數n 這是要跟隨的字串數。以下n行每個包含乙個最多50個大寫字母的字串。對於輸入中的每個字串,首先輸出字串的編號,列印字串start是從輸入字串匯出的,每次都替換為字母表中的以下字母,並用 a 替換 z 在每個測試用例後列印空白行。例如 sample input 2hal sw...
acm程式設計書中題目l
輸入乙個字串,將這個字串倒序輸出。運用string中的getline cin,字串名 進行輸入然後通過獲取字串長度,倒序輸出。include include include using namespace std intmain d 100 int a,i,j while cin a 輸入字串 fo...