獨木舟 貪心

2021-08-25 14:19:50 字數 832 閱讀 8664

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