n個人,已知每個人體重。獨木舟承重固定,每只獨木舟最多坐兩個人,可以坐乙個人或者兩個人。顯然要求總重量不超過獨木舟承重,假設每個人體重也不超過獨木舟承重,問最少需要幾隻獨木舟?
使用貪心,先安排最重的與最輕的上船,假如此時獨木舟沒有超重,那麼此時只需要一輛船,否則把最終的安排上船,然後把次重的人與最輕的同時安排上船,依次下去
c++
#include
#include
#include
using
namespace
std;
const
int maxn=10001;
int a[maxn];
bool cmp(long
long a,long
long b)
int main()
else
}cout
0; }
ps:發現在這些時候while比for好用,看來迴圈的選擇也要合適才行……. 51nod 獨木舟問題
n個人,已知每個人體重,獨木舟承重固定,每只獨木舟最多坐兩個人,可以坐乙個人或者兩個人。顯然要求總重量不超過獨木舟承重,假設每個人體重也不超過獨木舟承重,問最少需要幾隻獨木舟?分析 乙個顯然的策略是按照人的體重排序。極端化貪心策略,最重的人要上船 如果最重的人和最輕的人體重總和不超過船的承重,則他們...
獨木舟問題 51Nod
n個人,已知每個人體重。獨木舟承重固定,每只獨木舟最多坐兩個人,可以坐乙個人或者兩個人。顯然要求總重量不超過獨木舟承重,假設每個人體重也不超過獨木舟承重,問最少需要幾隻獨木舟?input 第一行包含兩個正整數n 0output 一行乙個整數表示最少需要的獨木舟數。input示例 3 612 3out...
51nod 獨木舟問題
n個人,已知每個人體重,獨木舟承重固定,每只獨木舟最多坐兩個人,可以坐乙個人或者兩個人。顯然要求總重量不超過獨木舟承重,假設每個人體重也不超過獨木舟承重,問最少需要幾隻獨木舟?分析 乙個顯然的策略是按照人的體重排序。極端化貪心策略,最重的人要上船 如果最重的人和最輕的人體重總和不超過船的承重,則他們...