首页 > 其他分享 >1023. 买书

1023. 买书

时间:2023-03-30 15:13:12浏览次数:36  
标签:10 背包 1023 int MAX include

题目描述

书有4种,每种价格不同,每本书可以无限买,问刚好花m块钱的方案数?

f1-完全背包

基本分析

  1. 完全背包裸题

代码

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int MAX_M = 1000;
int f[MAX_M + 10];
int v[5] = {0, 10, 20, 50, 100};

int m;

int main()
{
    scanf("%d", &m);
    
    f[0] = 1;
    for (int i = 1; i <= 4; i ++)
    {
        for (int j = v[i]; j <= m; j ++)
            f[j] += f[j - v[i]];
    }
    printf("%d\n", f[m]);
    
    return 0;
}

总结

  1. 朴素定义?f[i][j]表示买前i本书,价格恰好为j的方案数
  2. 空间优化?第二维度正序遍历

标签:10,背包,1023,int,MAX,include
From: https://www.cnblogs.com/zk-icewall/p/17272744.html

相关文章

  • [pat乙]1023. 组个最小数
    1023.组个最小数(20)给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个......
  • PAT Basic 1023. 组个最小数
    PATBasic1023.组个最小数1.题目描述:给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如......
  • pat乙级1023 组个最小数
    #include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>intmain(){inta[10];for(inti=0;i<10;i++){scanf......
  • PAT-basic-1023 组个最小数 java
    一、题目给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,......
  • CP1023 单词首字母大写
    一道卡了我好几天的题目(题干绝不是你看起来的这么简单,因为并不是简单的空格判定)我的做法:#include<stdio.h>#include<ctype.h>#include<string.h>#defineMAX_NUM1......
  • dairy-20221023
    preface今天准备开始进行有计划的代码训练,今天开始的是50projects50days计划,这个时间段肯定是不能每天做这个的,有时间就弄一弄吧。<!DOCTYPEhtml><htmllang="en"><h......
  • 周总结--20221023
    代码实战篇要求.按照软件开发⽬录规范创建出完整⽬录.核⼼逻辑⽂件中编写调用⽤户注册登录功能,.注册功能要有校验⽤户是否存在和数据保存的功能.common.py⽂件中编写......
  • 221023 %你赛
    T1休假题目小A需要休假,他制定的规则是每连续工作\(X\)天就必须休息,在一次休息前后,加起来不能工作超过\(Y\)天,现在老板在第\(a_1,a_2,\dots,a_n\)天给了他带薪休......
  • 贤鱼的刷题日常--P1023 [NOIP2000 普及组] 税收与补贴问题--题目详解
    >......
  • PAT (Basic Level) Practice 1023 组个最小数 分数 20
    给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到......