日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【BZOJ】1649: [Usaco2006 Dec]Cow Roller Coaster(dp)

發布時間:2023/11/29 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【BZOJ】1649: [Usaco2006 Dec]Cow Roller Coaster(dp) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://www.lydsy.com/JudgeOnline/problem.php?id=1649

又是題解。。。

設f[i][j]表示費用i長度j得到的最大樂趣

f[i][end[a]]=max{f[i-cost[a][begin[a]]+w[a]} 當f[i-cost[a][begin[a]]可行時

初始化f=-1

f[0][0]=0

#include <cstdio> #include <cstring> #include <cmath> #include <string> #include <iostream> #include <algorithm> #include <queue> using namespace std; #define rep(i, n) for(int i=0; i<(n); ++i) #define for1(i,a,n) for(int i=(a);i<=(n);++i) #define for2(i,a,n) for(int i=(a);i<(n);++i) #define for3(i,a,n) for(int i=(a);i>=(n);--i) #define for4(i,a,n) for(int i=(a);i>(n);--i) #define CC(i,a) memset(i,a,sizeof(i)) #define read(a) a=getint() #define print(a) printf("%d", a) #define dbg(x) cout << #x << " = " << x << endl #define printarr(a, n, m) rep(aaa, n) { rep(bbb, m) cout << a[aaa][bbb]; cout << endl; } inline const int getint() { int r=0, k=1; char c=getchar(); for(; c<'0'||c>'9'; c=getchar()) if(c=='-') k=-1; for(; c>='0'&&c<='9'; c=getchar()) r=r*10+c-'0'; return k*r; } inline const int max(const int &a, const int &b) { return a>b?a:b; } inline const int min(const int &a, const int &b) { return a<b?a:b; }const int N=10005, M=1005; struct dat { int x, w, f, c; } a[N]; inline const bool cmp(const dat &a, const dat &b) { return a.x<b.x; } int f[M][M], n, l, m; int main() {read(l); read(n); read(m);for1(i, 1, n) read(a[i].x), read(a[i].w), read(a[i].f), read(a[i].c);sort(a+1, a+1+n, cmp);int ans=-1;CC(f, -1); f[0][0]=0;for1(i, 1, n) {int x=a[i].x, c=a[i].c, e=x+a[i].w, ff=a[i].f;for1(j, c, m) if(f[j-c][x]!=-1) f[j][e]=max(f[j][e], f[j-c][x]+ff);}for1(i, 1, m) ans=max(f[i][l], ans);print(ans);return 0; }

?

?


?

Description

The cows are building a roller coaster! They want your help to design as fun a roller coaster as possible, while keeping to the budget. The roller coaster will be built on a long linear stretch of land of length L (1 <= L <= 1,000). The roller coaster comprises a collection of some of the N (1 <= N <= 10,000) different interchangable components. Each component i has a fixed length Wi (1 <= Wi <= L). Due to varying terrain, each component i can be only built starting at location Xi (0 <= Xi <= L-Wi). The cows want to string together various roller coaster components starting at 0 and ending at L so that the end of each component (except the last) is the start of the next component. Each component i has a "fun rating" Fi (1 <= Fi <= 1,000,000) and a cost Ci (1 <= Ci <= 1000). The total fun of the roller coster is the sum of the fun from each component used; the total cost is likewise the sum of the costs of each component used. The cows' total budget is B (1 <= B <= 1000). Help the cows determine the most fun roller coaster that they can build with their budget.

奶牛們正打算造一條過山車軌道.她們希望你幫忙,找出最有趣,但又符合預算 的方案.??過山車的軌道由若干鋼軌首尾相連,由x=0處一直延伸到X=L(1≤L≤1000)處.現有N(1≤N≤10000)根鋼軌,每根鋼軌的起點 Xi(0≤Xi≤L-?Wi),長度wi(l≤Wi≤L),有趣指數Fi(1≤Fi≤1000000),成本Ci(l≤Ci≤1000)均己知.請確定一 種最優方案,使得選用的鋼軌的有趣指數之和最大,同時成本之和不超過B(1≤B≤1000).

Input

* Line 1: Three space-separated integers: L, N and B.

?* Lines 2..N+1: Line i+1 contains four space-separated integers, respectively: Xi, Wi, Fi, and Ci.

第1行輸入L,N,B,接下來N行,每行四個整數Xi,wi,Fi,Ci.

Output

* Line 1: A single integer that is the maximum fun value that a roller-coaster can have while staying within the budget and meeting all the other constraints. If it is not possible to build a roller-coaster within budget, output -1.

Sample Input

5 6 10
0 2 20 6
2 3 5 6
0 1 2 1
1 1 1 3
1 2 5 4
3 2 10 2


Sample Output

17
選用第3條,第5條和第6條鋼軌

HINT

Source

Silver

總結

以上是生活随笔為你收集整理的【BZOJ】1649: [Usaco2006 Dec]Cow Roller Coaster(dp)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。