• 湫湫系列故事——减肥记


    Description

      对于吃货来说,过年最幸福的事就是吃了,没有之一!
      但是对于女生来说,卡路里(热量)是天敌啊!
      资深美女湫湫深谙“胖来如山倒,胖去如抽丝”的道理,所以她希望你能帮忙制定一个食谱,能使她吃得开心的同时,不会制造太多的天敌。

      当然,为了方便你制作食谱,湫湫给了你每日食物清单,上面描述了当天她想吃的每种食物能带给她的幸福程度,以及会增加的卡路里量。

    Input

      输入包含多组测试用例。
      每组数据以一个整数n开始,表示每天的食物清单有n种食物。
      接下来n行,每行两个整数a和b,其中a表示这种食物可以带给湫湫的幸福值(数值越大,越幸福),b表示湫湫吃这种食物会吸收的卡路里量。
      最后是一个整数m,表示湫湫一天吸收的卡路里不能超过m。

       [Technical Specification]
      1. 1 <= n <= 100
      2. 0 <= a,b <= 100000
      3. 1 <= m <= 100000

    Output

      对每份清单,输出一个整数,即满足卡路里吸收量的同时,湫湫可获得的最大幸福值。

    Sample Input

    3
    3 3
    7 7
    9 9
    10
    5
    1 1
    5 3
    10 3
    6 8
    7 5
    6

    Sample Output

    10
    20

    简单完全背包问题

    完全背包(CompletePack): 有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。

    完全背包按其思路可以用一个二维数组来写出:

    f[i][v]=max{f[i-1],[v-k*c[i]]+k*w[i]|0<=k*c[i]<=v}

    当然也可以转化为一维数组形式

    for i=1..N
    
        for v=0..V
    
            f[v]=max{f[v],f[v-c[i]]+w[i]}
    

      

     具体代码如下:

    #include <stdio.h>
    #include <string.h>
    #include <iostream>
    using namespace std;
    int max(int a,int b)
    {
        return a>b?a:b;
    }
    struct s
    {
        int a;
        int b;
    }jiu[100003];
    int dp[100003];
    int main()
    {
    
        int n,m;
        while (scanf("%d",&n)!=EOF)
        {
        memset(dp,0,sizeof(dp));
         memset(jiu,0,sizeof(jiu));
            for(int i=1;i<=n;i++)
            scanf("%d%d",&jiu[i].a,&jiu[i].b);
            scanf("%d",&m);
            for(int i=1;i<=n;i++)
            for(int j=jiu[i].b; j<=m; j++)
            dp[j]=max(dp[j],dp[j-jiu[i].b]+jiu[i].a);
    
           printf("%d
    ",dp[m]);
        }
        return 0;
    }
    

      

  • 相关阅读:
    yocto/bitbake 学习资源
    QEMU/KVM学习资源
    ubuntu 中创建和删除用户
    git 重命名本地和远程分支
    Ubuntu 上搭建 FTP 服务器
    gdb 常见用法
    git log 显示与特定文件相关的 commit 信息
    基于 qemu system mode 运行 arm 程序
    基于 qemu user mode 运行 aarch64 程序
    checking in(airport)
  • 原文地址:https://www.cnblogs.com/llfj/p/5766192.html
Copyright © 2020-2023  润新知