題目解析 摘蘋果

2021-10-07 07:47:55 字數 1187 閱讀 8997

時間限制: 1000 ms 空間限制: 262144 kb

題目描述

輸入第一行兩個正整數n和m,分別表示小朋友的數量和蘋果的數量。

第二行n個正整數,兩個整數間用乙個空格分開,第i個數hi表示第i個小朋友的跳躍高度。

第三行m個正整數,兩個整數間用乙個空格分開,第i個數pi表示第i個蘋果的高度。

輸出如果能夠摘完所有的蘋果,就輸出最小的體力花費,如果不能摘完,就輸出「bad luck」(不包括引號)。

樣例輸入

樣例輸入1

3 25 3 6

4 6樣例輸入2

3 34 2 3

3 3 4

樣例輸出

樣例輸出1

樣例輸出2

bad luck

資料範圍限制

100%的資料,1<=n,m<=1000,1<=hi,pi<=1000。

提示【樣例1解釋】

首先讓跳躍高度為5的小朋友去摘高度為4的蘋果,花費的體力值是5,然後讓跳躍高度為6的小朋友去摘高度為6個蘋果,花費的體力值是6,所以總共花費體力值11。

【樣例2解釋】

由於是3個小朋友摘3個蘋果,第2個小朋友的跳躍高度不足以摘到任何乙個蘋果,所以不能摘下所有的蘋果。

思路:首先我們需要將h和p陣列從小到大排序,然後雙層迴圈來看當前的蘋果有哪個小朋友能摘得了,注意乙個小朋友只能摘一次,我們每次判斷,如果這個蘋果誰都摘不了,那就證明不能夠全部摘完,所以按照題意輸出bad luck。如果全部都能摘,那最後輸出ans即可。

接下來上**:

#include

using

namespace std;

int h[

1001

],p[

1001

],s=0;

intmain()

sort

(h+1

,h+n+1)

;//排序h陣列

for(

int i=

1;i<=m;i++

)sort

(p+1

,p+m+1)

;//排序p陣列

int j=

1,flag=1;

for(

int i=

1;i<=m;i++)}

if(flag)

} cout<}

陶陶摘蘋果

試題描述 陶陶家的院子裡有一棵蘋果樹,每到秋天樹上就會結出10個蘋果。蘋果成熟的時候,陶陶就會跑去摘蘋果。陶陶有個30厘公尺高的板凳,當她不能直接用手摘到蘋果的時候,就會踩到板凳上再試試。現在已知10個蘋果到地面的高度,以及陶陶把手伸直的時候能夠達到的最大高度,請幫陶陶算一下她能夠摘到的蘋果的數目。...

陶陶摘蘋果

陶陶家的院子裡有一棵蘋果樹,每到秋天樹上就會結出10個蘋果。蘋果成熟的時候,陶陶就會跑去摘蘋果。陶陶有個30厘公尺高的板凳,當她不能直接用手摘到蘋果的時候,就會踩到板凳上再試試。現在已知10個蘋果到地面的高度,以及陶陶把手伸直的時候能夠達到的最大高度,請幫陶陶算一下她能夠摘到的蘋果的數目。假設她碰到...

淘淘摘蘋果

又是一年秋季時,陶陶家的蘋果樹結了n個果子。陶陶又跑去摘蘋果,這次她有乙個a公分的椅子。當他手夠不著時,他會站到椅子上再試試。這次與noip2005普及組第一題不同的是 陶陶之前搬凳子,力氣只剩下s了。當然,每次摘蘋果時都要用一定的力氣。陶陶想知道在s 0之前最多能摘到多少個蘋果。現在已知n個蘋果到...