題目鏈結
題意:有多瓶體積一樣濃度不一樣的藥水,要使混合後濃度小於等於w,求可能的體積最大值。
思路:顯然又是一道動態規劃。
想了好一會兒陣列下標該取什麼,如果濃度不是小數的話,取濃度做起來很方便,在0《濃度<=w範圍內,dp[濃度] = 混合的瓶數,每次考慮下一瓶的時候對於那些dp值不為0的去和新的一瓶混合,能更新就更新,這樣最後最大的瓶數就代表最大的體積。然而濃度是小數。否決。
那麼把陣列下標取作混合的瓶數怎麼樣?
這樣想了然後就通了然後就寫過了。
dp[瓶數] = 濃度和,(因為每一瓶的體積都相同,所以很顯然的所有的濃度加起來除以瓶數就是濃度,和體積沒有關係,那麼在此姑且引入濃度和(誤)的概念),一開始不判斷濃度是否符合要求,最後從n開始往下找,第乙個濃度符合要求的即為體積最大值所在處。
每次考慮下一瓶的時候就是對於前面判斷過的所有存在的情況加上新的一瓶的濃度,如果濃度和比當前值小就更新。
狀態轉移方程為 dp[j] = min(dp[j-1] + p[i]);
ac**如下:
#include #include #include using namespace std;
#define maxn 110
int p[maxn],ans[maxn];
int main()
return 0;
}
HDU 2570 迷瘴 貪心
description 通過懸崖的yifenfei,又面臨著幽谷的考驗 幽谷周圍瘴氣瀰漫,靜的可怕,隱約可見地上堆滿了骷髏。由於此處長年不見天日,導致空氣中布滿了毒素,一旦吸入體內,便會全身潰爛而死。幸好yifenfei早有防備,提前備好了解藥材料 各種濃度的萬能藥水 現在只需按照配置成不同比例的濃...
HDU 2570 迷瘴 貪心
傳送門 hdu 2570 迷瘴 分析 注意 如果百分號小數化去判斷 就有精度問題 p 0.000001 w 貪心策略 先把濃度按從小到大的順序排列,再乙個乙個的 貪 直至貪到所配濃度大於題目中所給的濃度。如下 include include using namespace std int main ...
HDU 2570 迷瘴 貪心
problem description 通過懸崖的yifenfei,又面臨著幽谷的考驗 幽谷周圍瘴氣瀰漫,靜的可怕,隱約可見地上堆滿了骷髏。由於此處長年不見天日,導致空氣中布滿了毒素,一旦吸入體內,便會全身潰爛而死。幸好yifenfei早有防備,提前備好了解藥材料 各種濃度的萬能藥水 現在只需按照配...