sort快排應用 獨木舟(貪心演算法)

2021-08-20 04:10:47 字數 812 閱讀 3840

魔法學院放暑假了,wc和他的一幫魔友一起去弗爾夫斯基山脈玩。莫伊拉同學突然想划船到對岸找被削的mercy玩,

這裡的每一艘船都是同一型號,能承受的重量都是一樣的,並且每艘船都可以坐乙個或者兩個人。wc他們共有n個人,

現在我們知道他們每個人的質量,而且每個人體重也不超過船的承重。可惜經費有限,他們必須租盡可能少的船,請

問他們最少要租幾艘船?

input第一行包含兩個正整數n 和m ,n<=10^4,m<=2*10^9,表示人的數量和船的最大承重。 接下來n行,每行一

個正整數,表示每個人的體重。體重不超過m。

output一行乙個整數表示最少需要的獨木舟數。

sample input

3 612

3

sample output

2
貪心不講了,可以看看

這個題先用sort快排從小到大排列,從右到左掃瞄,然後標記已經掃瞄過的元素即可。

這裡講下sort快排,sort快排要用到頭檔案#include,sort(第乙個元素位址,最後乙個元素下一位的位址),它是左閉右開型的,也就是說她訪問第乙個元素和最後乙個元素,而不訪問最後乙個元素的下一位。

#include#includeusing namespace std;

int a[10005];

int main()

同時引用sort時應加入cmp,變成sort(a,a+n,cmp)

ACM 貪心演算法 獨木舟問題

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

NYOJ 貪心演算法 71 獨木舟上的旅行

時間限制 3000 ms 記憶體限制 65535 kb 難度 2 描述進行一次獨木舟的旅行活動,獨木舟可以在港口租到,並且之間沒有區別。一條獨木舟最多只能乘坐兩個人,且乘客的總重量不能超過獨木舟的最大承載量。我們要儘量減少這次活動中的花銷,所以要找出可以安置所有旅客的最少的獨木舟條數。現在請寫乙個程...

NYOJ 71 獨木舟上的旅行 貪心演算法

思路 sort一遍 從首位開始往中間加 1.兩個人體重和小於船承重 船數量加一 這兩個人就算安排好了 2.兩個人體重和大於船承重 船數量加一 只安排重的那個人 輕的再安排 include include include include include include include include ...