由於你的幫助,火星只遭受了最小的損失。但gw懶得重建家園了,就造了一艘飛船飛向遙遠的earth星。不過飛船飛到一半,gw發現了乙個很嚴重的問題:肚子餓了~
gw還是會做飯的,於是拿出了儲藏的食物準備填飽肚子。gw希望能在t時間內做出最美味的食物,但是這些食物美味程度的計算方式比較奇葩,於是絕望的gw只好求助於你了。
一共有n件食材,每件食材有三個屬性,ai,bi和ci,如果在t時刻完成第i樣食材則得到ai-t*bi的美味指數,用第i件食材做飯要花去ci的時間。
眾所周知,gw的廚藝不怎麼樣,所以他需要你設計烹調方案使得美味指數最大
輸入格式:
第一行是兩個正整數t和n,表示到達地球所需時間和食材個數。
下面一行n個整數,ai
下面一行n個整數,bi
下面一行n個整數,ci
輸出格式:
輸出最大美味指數
輸入樣例#1:複製
74 1
5022
47
輸出樣例#1:複製
408
【資料範圍】
對於40%的資料1<=n<=10
對於100%的資料1<=n<=50
所有數字均小於100,000
【題目**】
tinylic改編
注意:挺有意思的乙個01揹包
開始直接寫了乙個裸01揹包30分
後來小翻了一下題解
這裡放一下我的推導過程
a[i]-b[i]*(t+c[i])+a[j]-b[j]*(t+c[i]+c[j])a[i]−b[i]∗(t+c[i])+a[j]−b[j]∗(t+c[i]+c[j])//i先做
a[j]-b[j]*(t+c[j])+a[i]-b[i]*(t+c[i]+c[j])a[j]−b[j]∗(t+c[j])+a[i]−b[i]∗(t+c[i]+c[j])//j先做
a[i]-b[i]*(t+c[i])+a[j]-b[j]*(t+c[i]+c[j])>a[j]-b[j]*(t+c[j])+a[i]-b[i]*(t+c[i]+c[j])a[i]−b[i]∗(t+c[i])+a[j]−b[j]∗(t+c[i]+c[j])>a[j]−b[j]∗(t+c[j])+a[i]−b[i]∗(t+c[i]+c[j])
-b[i]*(t+c[i])-b[j]*(t+c[i]+c[j])>-b[j]*(t+c[j])-b[i]*(t+c[i]+c[j])−b[i]∗(t+c[i])−b[j]∗(t+c[i]+c[j])>−b[j]∗(t+c[j])−b[i]∗(t+c[i]+c[j])
-b[i]*t-b[i]*c[i]-b[j]*t-b[j]*c[i]-b[j]*c[j]>-b[j]*t-b[j]*c[j]-b[i]*t-b[i]*c[i]-b[i]*c[j]−b[i]∗t−b[i]∗c[i]−b[j]∗t−b[j]∗c[i]−b[j]∗c[j]>−b[j]∗t−b[j]∗c[j]−b[i]∗t−b[i]∗c[i]−b[i]∗c[j]
-b[j]*c[i]>-b[i]*c[j]−b[j]∗c[i]>−b[i]∗c[j]
所以最後按-b[j]*c[i]>-b[i]*c[j]−b[j]∗c[i]>−b[i]∗c[j]的規則進行排序就行了
然後注意要開longlong,不然第十四個點排序的時候會wa
#include#define ll long long
using namespace std;
ll t, n;
const int maxn = 1e5 + 10;
const int maxnn = 60;
struct food;
food f[maxn];
ll dp[maxn];
bool cmp(food i, food j)
void bag01(ll a, ll b, ll c)
}int main()
for(ll i = 0; i < n; i++)
for(ll i = 0; i < n; i++)
sort(f, f + n, cmp);
/*for(ll i = 0; i < n; i++)
dp[0] = 0;*/
for(ll k = 0; k < n; k++)
ll maxx = 0;
for(ll j = 1; j <= t; j++)
cout << maxx << endl;
}
洛谷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...
洛谷 P1417烹調方案
洛谷 p1417烹調方案 由於你的幫助,火星只遭受了最小的損失。但gw懶得重建家園了,就造了一艘飛船飛向遙遠的earth星。不過飛船飛到一半,gw發現了乙個很嚴重的問題 肚子餓了 gw還是會做飯的,於是拿出了儲藏的食物準備填飽肚子。gw希望能在t時間內做出最美味的食物,但是這些食物美味程度的計算方式...