Codeforce 106C Buns (完全背包)

原创 2018年04月17日 00:04:31

题意:

    现在有nkg的面,和m种馅,如果是只买面做的馒头,c0kg面,做一个d0价值的馒头。

m种馅有a,b,c,d四种属性,a馅的量,b制作一个这种面包需要的馅的量,c是需要面的量,d是该种面包能卖多少钱。

问最多能销售多少钱。

分析:

    贪心考虑第一时间否定。

动态规划:考虑与结果相关的参数。面的质量i,使用了前j种馅,一共做了k个j馅。

d(i,j,k)就是我们要的答案。

状态转移:

    

for(int i=0;i<m;i++){
        for(int j=1;j<=x[i].a/x[i].b;j++){
            for(int k=n;k>=x[i].c;k--){
                dp[k]=max(dp[k],dp[k-x[i].c]+x[i].d);

            }
        }
    }

完整代码:

    

#include<bits/stdc++.h>
using namespace std;
#define N 10005
struct Node{
    int a,b,c,d;
}x[N];
int dp[N];
int main(){
    int n,m,c,d;
    cin>>n>>m>>c>>d;

    for(int i=0;i<m;i++){
        cin>>x[i].a>>x[i].b>>x[i].c>>x[i].d;
    }

    for(int i=0;i<=n;i++)dp[i]=(i/c)*d;
    for(int i=0;i<m;i++){
        for(int j=1;j<=x[i].a/x[i].b;j++){
            for(int k=n;k>=x[i].c;k--){
                dp[k]=max(dp[k],dp[k-x[i].c]+x[i].d);

            }
        }
    }
    cout<<dp[n];
}

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lj130lj/article/details/79968747

Codeforces 106C Buns 【0-1背包】

题目链接:Codeforces 106C Buns Lavrenty, a baker, is going to make several buns with stuffings and sell ...
  • chenzhenyu123456
  • chenzhenyu123456
  • 2016-03-06 12:43:23
  • 540

CodeForces 106C Buns (多重背包)

C. Buns time limit per test 2 seconds memory limit per test 256 megabytes input st...
  • i1020
  • i1020
  • 2017-08-26 11:07:56
  • 79

CodeForces 106C Buns 多重背包

题意:有n克生面粉,m种馅。每种馅含有ai,克,每一种馅可以拿出bi克馅与ci克面粉制成一种面包,获得di的价值。生面粉可以拿出c0克制成馒头,获得d0价格。给定n,m,c0,d0.和馅的信息。问可以...
  • chen_minghui
  • chen_minghui
  • 2017-07-13 18:23:08
  • 113

CodeForces 106C Buns (01beoba)

http://codeforces.com/problemset/problem/540/B C. Buns time limit per test 2 seconds memo...
  • w144215160044
  • w144215160044
  • 2016-03-06 14:18:43
  • 345

Buns CodeForces - 106C 多重背包

Lavrenty, a baker, is going to make several buns with stuffings and sell them.Lavrenty has n grams o...
  • Littlewhite520
  • Littlewhite520
  • 2017-08-09 23:48:56
  • 156

CF 106C Buns

裸的多维背包。。但本蒟蒻能看出多维背包但是写不出来。。 于是想了个骚办法,就是把多维背包强制成01背包。。 然后愉快的dp。。结果数据弱到跑完test总共才30ms。。 完全不科学的最后一次显示...
  • Blackieonly
  • Blackieonly
  • 2016-10-28 21:57:38
  • 185

codeforces 106C Buns

做法:传统多重背包,好久没做背包,有些地方确实要注意一下了... #include #include using namespace std; int lim[12],dp[12][1003],...
  • cqlf__
  • cqlf__
  • 2012-12-19 19:08:46
  • 597

CodeForces - 106C Buns (多重背包二进制优化)

题目链接:https://vjudge.net/problem/22519/origin点击打开链接 C. Buns time limit per test 2 seconds ...
  • xuejye
  • xuejye
  • 2017-09-01 22:23:47
  • 153

Codeforce 106C(多重背包)

链接:点击打开链接 题意:有两种原料,m种面包,每种面包可以由bi克原料B和ci克原料A组成,能够产生di的价值,也可以只有c0克原料A生产,产生d0的价值,给出第A种原料N克,每种面包自带ai克原料...
  • stay_accept
  • stay_accept
  • 2015-12-24 18:31:26
  • 334

CF 106C Buns 再解

学过了多维背包的蒟蒻终于会写这题了。。。 就是用一个k来循环多次取,跟转化为01背包的时间复杂度会是一模一样的。。(30ms again证明了这一点) 但空间效率却大大提高。原来7000多kb,现...
  • Blackieonly
  • Blackieonly
  • 2016-10-31 00:25:57
  • 149
收藏助手
不良信息举报
您举报文章:Codeforce 106C Buns (完全背包)
举报原因:
原因补充:

(最多只允许输入30个字)