码迷,mamicode.com
首页 > 其他好文 > 详细

【bzoj1649】Cow Roller Coaster

时间:2017-06-15 21:56:39      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:cow   amp   div   class   getch   namespace   成本   get   color   

傻逼dp题。

dp[i][j]表示用了i长度已花费成本j所能得到的价值。

然后枚举一下铁轨随便做了。

不行就sort一下。

 

#include<bits/stdc++.h>
#define inf 1000000007
typedef long long ll;
using namespace std;
struct Node{int s,c,w,f;}a[100010];
ll f[1005][1005];
bool cmp(Node a,Node b){
    if(a.s==b.s)return a.w<b.w;
    return a.s<b.s;
}
inline int read(){
    int f=1,x=0;char ch;
    do{ch=getchar();if(ch==-)f=-1;}while(ch<0||ch>9);
    do{x=x*10+ch-0;ch=getchar();}while(ch>=0&&ch<=9);
    return f*x;
}
int l,n,maxv;
int main(){
    l=read();n=read();maxv=read();
    for(int i=1;i<=n;i++){
        a[i].s=read();a[i].w=read();a[i].f=read();a[i].c=read();
    }
    sort(a+1,a+n+1,cmp);memset(f,-1,sizeof(f));f[0][0]=0;
    for(int i=1;i<=n;i++){
        int len=a[i].s+a[i].w;
        for(int j=maxv;j>=a[i].c;j--)if(f[a[i].s][j-a[i].c]>=0)
        f[len][j]=max(f[len][j],f[a[i].s][j-a[i].c]+a[i].f);
    }
    ll ans=-inf;
    for(int i=0;i<=maxv;i++)ans=max(ans,f[l][i]);
    cout<<ans;
}

 

【bzoj1649】Cow Roller Coaster

标签:cow   amp   div   class   getch   namespace   成本   get   color   

原文地址:http://www.cnblogs.com/zcysky/p/7019836.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!