洛谷 P1478 陶陶摘蘋果(公升級版) C語言實現

2021-09-10 21:23:12 字數 2160 閱讀 5155

又是一年秋季時,陶陶家的蘋果樹結了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:

輸出樣例#1:

8 15

20 130

120 3

150 2

110 7

180 1

50 8

200 0

140 3

120 2

4說明

所有資料:n<=5000 a<=50 b<=200 s<=1000

xi<=280 yi<=100

咳,首先由於前幾天剛剛學了什麼是「深度優先搜尋(dfs)」,看到這道題,我第一反應是:這個不就是用深度優先搜尋嗎?!把所有情況全部列舉出來,然後再在滿足條件的情況下選擇能摘到最多蘋果的情況,不就ac了嗎?!

自我感覺非常良好,還自以為很聰明。我還在輸入的時候就把摘不到的蘋果忽略了,以此來減少列舉情況,節約時間。

於是寫了這樣的**:

**

#include

void

dfs(

int s,

int num)

;5005

], book[

5005];

int max =

0, n, t =0;

intmain()

else

scanf

("%d"

,&xi);}

dfs(s,0)

;printf

("%d"

, max)

;return0;

}void

dfs(

int s,

int num)

for(i =

0; i < t; i++)}

return

;}

最後的結果當然ac了 ,好吧…tle了…感覺瞬間自己被自己打臉。

然後再次經過不斷思考發現,只要將可以摘到的蘋果用「快速排序」將要用的力氣從小到大排序出來,然後從最小的力氣一直累加,直到累加值》=淘淘擁有的力氣,這時候就可以得到摘到最多蘋果的值了。

ps.這時候要注意,蘋果為0的情況。和累加是大於力氣,還是等於力氣,這兩種不同情況的時候要對值做不同的處理。

所以最終獲得ac了!我果然是天才!

ac**

#include

void

quicksort

(int left,

int right)

;5005];

intmain()

else

scanf

("%d"

,&xi);}

if(n ==0)

quicksort(0

, t -1)

;for

(i =

0; i < t; i++

)else

if(sum > s)

}return0;

}void

quicksort

(int left,

int right)};

= temp;

quicksort

(left, i -1)

;quicksort

(i +

1, right)

;}

最後的體會是:做題不能想當然,要思考用最快的方法,而不是用自己感覺很厲害的方法。

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

每當我心情不好的時候,我就會刷刷水題,誒呀真香,真尼瑪有成就感 又是一年秋季時,陶陶家的蘋果樹結了n個果子。陶陶又跑去摘蘋果,這次她有乙個a公分的椅子。當他手夠不著時,他會站到椅子上再試試。這次與noip2005普及組第一題不同的是 陶陶之前搬凳子,力氣只剩下s了。當然,每次摘蘋果時都要用一定的力氣...

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

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

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

乙隻鶸的刷題記錄 題目描述 又是一年秋季時,陶陶家的蘋果樹結了 nn 個果子。陶陶又跑去摘蘋果,這次他有乙個 aa 公分的椅子。當他手夠不著時,他會站到椅子上再試試。這次與 noip2005 普及組第一題不同的是 陶陶之前搬凳子,力氣只剩下 s 了。當然,每次摘蘋果時都要用一定的力氣。陶陶想知道在 ...