51nod貪心例子獨木舟問題

2021-07-09 01:50:52 字數 499 閱讀 9887

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個人,已知每個人體重,獨木舟承重固定,每只獨木舟最多坐兩個人,可以坐乙個人或者兩個人。顯然要求總重量不超過獨木舟承重,假設每個人體重也不超過獨木舟承重,問最少需要幾隻獨木舟?分析 乙個顯然的策略是按照人的體重排序。極端化貪心策略,最重的人要上船 如果最重的人和最輕的人體重總和不超過船的承重,則他們...