陶陶摘蘋果(公升級版)

2021-07-26 19:34:34 字數 1569 閱讀 3790

又是一年秋季時,陶陶家的蘋果樹結了n個果子。陶陶又跑去摘蘋果,這次她有乙個a公分的椅子。當他手夠不著時,他會站到椅子上再試試。

這次與noip2005普及組第一題不同的是:陶陶之前搬凳子,力氣只剩下s了。當然,每次摘蘋果時都要用一定的力氣。陶陶想知道在s<0之前最多能摘到多少個蘋果。

現在已知n個蘋果到達地上的高度xi,椅子的高度a,陶陶手伸直的最大長度b,陶陶所剩的力氣s,陶陶摘乙個蘋果需要的力氣yi,求陶陶最多能摘到多少個蘋果。

輸入格式:

第1行:兩個數 蘋果數n,力氣s。

第2行:兩個數 椅子的高度a,陶陶手伸直的最大長度b。

第3行~第3+n-1行:每行兩個數 蘋果高度xi,摘這個蘋果需要的力氣yi。

輸出格式:

只有乙個整數,表示陶陶最多能摘到的蘋果數。

輸入樣例#1:

8 15

20 130

120 3

150 2

110 7

180 1

50 8

200 0

140 3

120 2

輸出樣例#1:

4

var

ans,n,m,sou,den,i,j,dai,dai2,s2:longint;

a:array[1..10000]of longint;

begin

read(n,m);

read(den,sou);

sou:=den+sou;

for i:=1 to n do

begin

read(dai);

if dai<=sou then//判斷高度是否夠,不夠去掉

begin

inc(s2);//統計有多少個高度夠

read(a[s2])

endelse

read(dai2);//因為高度不夠,所以直接把力度不儲存

end;

for i:=1 to s2-1 do

for j:=i+1 to s2 do

if a[i]>a[j] then

begin

dai:=a[i];a[i]:=a[j];a[j]:=dai;

end;

for i:=1 to s2 do

if (m>0) and (m-a[i]>=0) then

begin

inc(ans);//統計拿到的個數

m:=m-a[i];

end;

if n=0 then write('0')//邊界

else write(ans);

end.

洛谷 陶陶摘蘋果(公升級版)

輸入8 15 20 130 120 3 150 2 110 7 180 1 50 8 200 0 140 3 120 2 輸出 本題其實不難 只要別想得複雜 思路 乙個個輸入高度和力氣,若高度滿足,則將其力氣放入乙個新陣列。將新陣列進行排序,再迴圈相減輸出即可。如下 n蘋果,a b最大高度,s力氣,...

P1478 陶陶摘蘋果(公升級版)

大佬說要用貪心 0 1揹包 並沒看出來 其實是因為不知道那是什麼東西 又是一年秋季時,陶陶家的蘋果樹結了n個果子。陶陶又跑去摘蘋果,這次她有乙個a公分的椅子。當他手夠不著時,他會站到椅子上再試試。這次與noip2005普及組第一題不同的是 陶陶之前搬凳子,力氣只剩下s了。當然,每次摘蘋果時都要用一定...

P1478 陶陶摘蘋果 公升級版

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