洛谷習題 烹調方案

2022-07-16 20:03:16 字數 709 閱讀 8064

非常好的一道題!

一開始怎麼也想不到加上時間這一維度後,怎樣不超時間空間地解決這道題,寫了乙個狀態轉移方程dp[i][j]=max(定義dp[i][j]為考慮到第i件食材且第i件食材在j時刻完成所能取得的最大價值)只有20分。後來看了題解才發現,原來是貪心之後的dp。由於費用與時間相關聯,所以這道題不好做,但如果列出相關式子,會發現每件食材先做是否更優與其a,b,c是相關的,因此可以按優先順序排序,之後就是乙個簡單的01揹包。

當時做貪心的題目時就遇到類似的做法,但沒有好好記住,胡亂放了過去,現在遭到報應,也不能怪別人。

再就是dp的式子中,要注意可能會炸int,要用long long。我看到好多人抱怨二維過不了,可能又是犯了榨取kkksc03那道題裡的錯。另外,因為製作的時間越靠後,價值越低,最大價值並不一定是dp[t]。

1 #include2 #include3

using

namespace

std;

4 inline int max(int a,int b)

5const

int maxn=55,maxt=1e5+5;6

intt,n;

7long

long

dp[maxt],ans;

8struct

food

13} f[maxn];

14int

main()

ac**

洛谷1417 烹調方案

洛谷1417 烹調方案 題目背景 由於你的幫助,火星只遭受了最小的損失。但gw懶得重建家園了,就造了一艘飛船飛向遙遠的earth星。不過飛船飛到一半,gw發現了乙個很嚴重的問題 肚子餓了 gw還是會做飯的,於是拿出了儲藏的食物準備填飽肚子。gw希望能在t時間內做出最美味的食物,但是這些食物美味程度的...

洛谷P1417 烹調方案

由於你的幫助,火星只遭受了最小的損失。但gw懶得重建家園了,就造了一艘飛船飛向遙遠的earth星。不過飛船飛到一半,gw發現了乙個很嚴重的問題 肚子餓了 gw還是會做飯的,於是拿出了儲藏的食物準備填飽肚子。gw希望能在t時間內做出最美味的食物,但是這些食物美味程度的計算方式比較奇葩,於是絕望的gw只...

洛谷P1417 烹調方案

這道題不同於普通的01揹包,不同的先選擇的做菜策略會對之後產生不同的影響,即不滿足 無後效性 但是,考慮一種選擇策略,假設有兩個先後做的菜i和j,交換他們的順序會產生什麼影響呢?假設ij之前的時間為t 先i後j a i t c i b i a j t c i c j b j 先j後i a j t c...