題目描述
貝茜又再一次地闖入了 farmer john 的房子!她在廚房發現了一堆檸檬和一堆橘子(每堆都有無限多個),並且,她希望盡可能地多吃。
貝茜的有乙個飽腹值上限 t(1<=t<=5,000,000)。吃乙個橘子會增加她 a 點飽腹值,吃乙個檸檬會增加她 b 點飽腹值(1<=a,b<=t),如果她願意,貝茜可以最多喝一次水,這會立即使她的飽腹值變成一半,請你幫助貝茜求出她可以獲得的最大飽腹值。
輸入
一行三個整數 t,a 和 b
輸出
一行乙個整數,表示貝茜可獲得的最大飽腹值
樣例輸入
8
56
樣例輸出
8
題目思路:
這道題的大意:給你乙個飽腹值,叫你盡可能多吃,你有3種辦法,吃檸檬和橘子即喝水(將飽腹值/2);下面我來講講我的思路:
①因為飽腹值可以減半,所以不妨給它開乙個二位陣列
int dp[
5000100][
2];
②為了尋找可以達到的最大的飽腹值,不妨把不喝水飽腹值記錄為0 ,喝水飽腹值記錄為 0。最後我們從 n->1去判斷就行了!
#include
#include
#include
#define ft(i,a,b) for(int i=a;i<=b;i++)
using
namespace std;
const
int inf=
5e6+5;
int dp[inf][2
];intmain()
}}while
(!dp[t][1
]&&!dp[t][0
]) t--
;//取最大值
cout
}
(紀中)2219 水果盛宴(fruit) 深搜
file io input fruit.in output fruit.out 時間限制 1000 ms 空間限制 262144 kb 具體限制 goto problemset 題目描述 貝茜又再一次地闖入了 far merj oh nfarmer john farmer john 的房子!她在廚房...
接水果 fruit 整體二分 掃瞄線
題目描述 風見幽香非常喜歡玩乙個叫做 osu 的遊戲,其中她最喜歡玩的模式就是接水果。由於她已經 dt fc 了 the big black,她覺得這個遊戲太簡單了,於是發明了乙個更加難的版本。首先有乙個地圖,是一棵由 n 個頂點 n 1 條邊組成的樹 例如圖 1 給出的樹包含 8 個頂點 7 條邊...
作業 合併果子 fruit
題目描述 在乙個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看出,所有的果子經過n 1次合併之後,就只剩下一堆了。多多在合併果子時總共消耗的體力等於每次合併所耗...