魔法學院放暑假了,wc和他的一幫魔友一起去弗爾夫斯基山脈玩。莫伊拉同學突然想划船到對岸找被削的mercy玩,這裡的每一艘船都是同一型號,能承受的重量都是一樣的,並且每艘船都可以坐乙個或者兩個人。wc他們共有n個人,現在我們知道他們每個人的質量,而且每個人體重也不超過船的承重。可惜經費有限,他們必須租盡可能少的船,請問他們最少要租幾艘船?
input
第一行包含兩個正整數n 和m ,n<=10^4,m<=2*10^9,表示人的數量和船的最大承重。 接下來n行,每行乙個正整數,表示每個人的體重。體重不超過m。
output
一行乙個整數表示最少需要的獨木舟數。
sample input
3 6
1 2
3 sample output
2 分析:
簡單貪心問題,先sort公升序排序,安排最輕的和最重的在一起
**總覽:
//獨木舟
#include
#include
#include
#include
using
namespace
std;
int a[100000],visit[100000];
int main()
sort(a,a+n);
for(i=0;ifor(j=n-1;j>=0;j--)}}
for(i=0;iif(visit[i]==0)
count++;
printf("%d\n",count);
}return
0;}
貪心入門 獨木舟問題
n個人,已知每個人體重,獨木舟承重固定,每只獨木舟最多坐兩個人,可以坐乙個人或者兩個人。顯然要求總重量不超過獨木舟承重,假設每個人體重也不超過獨木舟承重,問最少需要幾隻獨木舟?分析 乙個顯然的策略是按照人的體重排序。極端化貪心策略,最重的人要上船 如果最重的人和最輕的人體重總和不超過船的承重,則他們...
貪心入門 獨木舟問題
n個人,已知每個人體重,獨木舟承重固定,每只獨木舟最多坐兩個人,可以坐乙個人或者兩個人。顯然要求總重量不超過獨木舟承重,假設每個人體重也不超過獨木舟承重,問最少需要幾隻獨木舟?分析 乙個顯然的策略是按照人的體重排序。極端化貪心策略,最重的人要上船 如果最重的人和最輕的人體重總和不超過船的承重,則他們...
ACM 貪心演算法 獨木舟問題
n個人,已知每個人體重,獨木舟承重固定,每只獨木舟最多坐兩個人,可以坐乙個人或者兩個人。顯然要求總重量不超過獨木舟承重,假設每個人體重也不超過獨木舟承重,問最少需要幾隻獨木舟?分析 乙個顯然的策略是按照人的體重排序。極端化貪心策略,最重的人要上船 如果最重的人和最輕的人體重總和不超過船的承重,則他們...