獨木舟上的旅行

2022-08-04 20:24:15 字數 999 閱讀 8412

我們計畫搞一次獨木舟旅遊活動。獨木舟可以在港口租到,並且它們之間是沒有區別的。一條獨木舟上最多只能乘坐兩個人,且乘客的總重量不能超過獨木舟的最大承載量。我們想要盡可能的減少我們在這次活動中的花銷,所以要找出可以安置所有旅客的最少的獨木舟的條數。

任務:請寫乙個程式:讀入獨木舟的最大承載量,旅客的數目和每位旅客的重量;

根據給出的規則,計算要安置所有旅客所必須最少的獨木舟的條數.

第一行包括乙個整數w,80  w  200,為一條獨木舟的最大承載量。

檔案的第二行為乙個整數n,1  n  30000,表示旅客的數目。

以下的n行中每行包含乙個[5..w]中的整數,表示所對應旅客的重量。

輸出乙個整數——所需要的最少獨木舟的數目。

100990

2020

3050

6070

8090

6

sol:貪心入門題,按旅客重量從小到大排成一排,然後一前一後搭配乘船。如排序後旅客重量為a,b,c,d,e,f,我們用乙個l,乙個r指標指向一前一後旅客。如果l與r所指向的旅客重量和大於limit,只能載乙個旅客,r--,ans++,如果l與r所指向的旅客重量和小於limit,則兩個旅客同時乘船,r--,l++,ans++。

即該題正向考慮,l如果能帶走r,則帶走之,為後面的船減輕負擔,否則r只能一人坐一條船,因為l已經是最小的了。如果我們反向考慮,能否找到更優的情況。

如四人排序後依次為a,b,c,d,若d可以帶走a,我們試試看d能否帶走更大的b,其實沒必要。因為b+db+c

1 #include2 #include3

using

namespace

std;

4int a[30010];5

intmain()621

else

2226

}27 printf("

%d\n

",ans);

28return0;

29 }

獨木舟上的旅行

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

獨木舟上的旅行

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

獨木舟上的旅行

描述 進行一次獨木舟的旅行活動,獨木舟可以在港口租到,並且之間沒有區別。一條獨木舟最多只能乘坐兩個人,且乘客的總重量不能超過獨木舟的最大承載量。我們要儘量減少這次活動中的花銷,所以要找出可以安置所有旅客的最少的獨木舟條數。現在請寫乙個程式,讀入獨木舟的最大承載量 旅客數目和每位旅客的重量。根據給出的...