P1164 小A点菜

P1164 小 A 点菜

小A点菜 - 洛谷

洛谷P1164 小A点菜_哔哩哔哩_bilibili

P1164 小A点菜_哔哩哔哩_bilibili

P1164 小A点菜 - 暗い之殇 - 博客园

洛谷-P1164-小A点菜_洛谷p1164-优快云博客

洛谷 P1164 小A点菜_洛谷p1164讲解-优快云博客

讲给小学生听的动态规划问题(三)洛谷P1164 小A点菜(01背包问题)

讲给小学生听的动态规划问题(三)洛谷P1164 小A点菜(01背包问题)_哔哩哔哩_bilibili

#背包 [洛谷_P1164_小A点菜] #洛谷 #算法 #C++

#背包 [洛谷_P1164_小A点菜] #洛谷 #算法 #C++_哔哩哔哩_bilibili

信息学奥赛C++习题讲解 算法部分-递归算法-09-P1164 小A点菜

信息学奥赛C++习题讲解 算法部分-递归算法-09-P1164 小A点菜_哔哩哔哩_bilibili

【Luogu P1164】小A点菜_园荐_博客园

递归与递推-P1164 小A点菜

递归与递推-P1164 小A点菜 - garigari - 博客园

P1164小A点菜(动态规划)[洛谷AC]

P1164小A点菜(动态规划)[洛谷AC]_p1164 小a点菜-优快云博客

【题解】【洛谷P1164】【递推】——小A点菜

【题解】【洛谷P1164】【递推】——小A点菜-优快云博客




 




 学信奥,要不要先练打字,有必要吗?

学信奥,要不要先练打字,有必要吗?-优快云博客

C++第 1 个程序:hello, world!,一些小技巧!!

C++第 1 个程序:hello, world!,一些小技巧!!_c++hello-优快云博客

为什么小学一二年级就可以学Go C编程(C++画图)呢?

为什么小学一二年级就可以学Go C编程(C++画图)呢?_goc编程-优快云博客




少儿编程启蒙书籍介绍(2024.02.01)

少儿编程启蒙书籍介绍(2024.02.01)_编程 杂志 儿童-优快云博客

宝宝的C++,小学生C++编程启蒙 书籍等

宝宝的C++,小学生C++编程启蒙 书籍等_编程启蒙c++版-优快云博客

小学生C++入门书籍、算法入门书籍,NOI数学书籍等

小学生C++入门书籍、算法入门书籍,NOI数学书籍等_少儿c++编程教材-优快云博客

少儿C++编程、信奥(GESP、CSP-J等)入门书籍推荐

少儿C++编程、信奥(GESP、CSP-J等)入门书籍推荐-优快云博客




 宝宝的编程系列书籍

宝宝的编程系列书籍_dllglvzhenfeng的博客-优快云博客

宝宝的物理学系列

宝宝的物理学系列_dllglvzhenfeng的博客-优快云博客

宝宝的数学书籍

宝宝的数学书籍_dllglvzhenfeng的博客-优快云博客


 小学生讲C++(2023.12.03)

小学生讲C++(2023.12.03)_五年级编程考试题目-优快云博客

 小学生微积分学习

小学生微积分学习-优快云博客




中小学计算思维相关书籍

中小学计算思维相关书籍-优快云博客

中小学数学建模书籍介绍

数学建模教育资源与科技发展-优快云博客







 宝宝左右脑潜能开发、幼儿全脑开发、宝宝全脑思维游戏 书籍

宝宝左右脑潜能开发、幼儿全脑开发、宝宝全脑思维游戏 书籍-优快云博客

全脑思维游戏、幼儿奥数启蒙思维训练书籍、幼儿数学思维启蒙训练 书籍

全脑思维游戏、幼儿奥数启蒙思维训练书籍、幼儿数学思维启蒙训练 书籍-优快云博客



信奥中的数学:排列组合(小学四五年级)

信奥中的数学:排列组合(小学四五年级)_小学奥数排列组合的基本公式-优快云博客

NOI数学 学习 相关书籍及视频等资料(不包括CTS内容)

NOI数学 学习 相关书籍及视频等资料(不包括CTS内容)_noi教材-优快云博客

信奥的数学题单(2024.12.12)

信奥的数学题单(2024.12.12)_abc 186c unlucky-优快云博客

关于信奥中的数学的学习(2024.12.03)

关于信奥中的数学的学习(2024.12.03)_信奥中数学是同时学习-优快云博客




NOI数学之入门级(2025.01.07)

NOI数学之入门级(2025.01.07)-优快云博客

NOI 数学 2.2 提高级(2025.01.07)

NOI 数学 2.2 提高级(2025.01.07)_noi提高级数论-优快云博客

NOI级 2.3.4 数学与其他

NOI级 2.3.4 数学与其他-优快云博客




NOI全国青少年信息学奥林匹克竞赛(NOI官网)

NOI全国青少年信息学奥林匹克竞赛

NOI 大纲(2023年修订版)正式发布

NOI 大纲(2023年修订版)正式发布

NOI大纲辞典研讨会在北京召开

NOI大纲辞典研讨会在北京召开





第1章 数据的运算

第1章 数据的运算-优快云博客

第2章 程序的选择执行

第2章 程序的选择执行-优快云博客

第3章 程序的重复执行

第3章 程序的重复执行-优快云博客

第4章 阶段训练(一)

第4章 阶段训练(一)-优快云博客

第5章 一维数组

第5章 一维数组-优快云博客

第6章 字符与字符串

第6章 字符与字符串-优快云博客

第7章 阶段训练(二)

第7章 阶段训练(二)-优快云博客

第8章 二维数组

第8章 二维数组-优快云博客

 第9章 函数与结构体

第9章 函数与结构体-优快云博客

第10章 阶段训练(三)

第10章 阶段训练(三)-优快云博客


第1章 排序问题

第1章 排序问题-优快云博客

第2章 算法设计策略

第2章 算法设计策略-优快云博客

第3章 综合训练

第3章 综合训练-优快云博客

第4章 数论问题

优快云

第5章 STL与数据结构

第5章 STL与数据结构-优快云博客

第6章搜索类问题初探

第6章搜索类问题初探-优快云博客

第7章 图论基础与树

第7章 图论基础与树-优快云博客

第8章 组合递推与动态规划

第8章 组合递推与动态规划-优快云博客






洛谷OJ食用指北

洛谷入门指南:题库解析、竞赛策略与编程技巧-优快云博客

USACO学习与比赛(2024.12.05)

USACO学习与比赛(2024.12.05)-优快云博客







在英语编程比赛中如何既快又准地看懂题目意思

在英语编程比赛中如何既快又准地看懂题目意思_codeforces fst hack-优快云博客

Codeforces的Div1、Div2和Div3、Div4主要区别

‌Codeforces的Div1、Div2和Div3、Div4主要区别-优快云博客

中国的软件业何时走向世界

中国的软件业何时走向世界-优快云博客

信奥入门级相关的比赛(2025.01.13)

信奥入门级相关的比赛(2025.01.13)-优快云博客




信奥的数学题单(2024.12.12)

信奥的数学题单(2024.12.12)_abc 186c unlucky-优快云博客

关于信奥中的数学的学习(2024.12.03)

关于信奥中的数学的学习(2024.12.03)_信奥中数学是同时学习-优快云博客

### P1164 小A点菜 C语言实现与解题思路 #### 问题描述 小A点菜问题是经典的动态规划题目之一,涉及在给定预算内选择菜品以最大化满足度或数量。此问题可以通过0/1背包问题模型来解决。 #### 动态规划状态定义 设`f[j]`表示在不超过`j`元钱的情况下能够获得的最大价值(即最多可以购买多少道不同的菜)。这里采用了一维数组来进行空间优化[^1]。 #### 初始化 为了确保计算准确性,需将所有可能的状态初始化为零或其他适当初始值。对于本题而言,只需关注容量维度上的初始化即可: ```c memset(f, 0, sizeof(f)); ``` #### 状态转移方程 遍历每一道菜,并更新当前剩余金额下的最优解。具体来说,当处理第`i`道价格为`w[i]`的菜时,逆序遍历从总金额到该菜品的价格范围内的每一个子问题解决方案,从而避免重复利用同一物品带来的错误影响: ```c for (int i = 1; i <= n; ++i) { for (int j = m; j >= w[i]; --j) { if (j == w[i]) f[j]++; else if (j > w[i]) f[j] += f[j - w[i]]; } } ``` 上述逻辑中,如果恰好等于某菜品的价值,则增加一种新的组合方式;否则累加从前一个状态继承过来的数量加上新加入这条路径所带来的增量。 #### 输出结果 最终输出的就是所求范围内最大的可行方案数目: ```c printf("%d\n", f[m]); ``` 完整的C语言程序如下所示: ```c #include <stdio.h> #include <string.h> const int MAXN = 1010; int w[MAXN]; int f[MAXN]; int main() { int n, m; scanf("%d %d", &n, &m); for (int i = 1; i <= n; ++i) scanf("%d", &w[i]); memset(f, 0, sizeof(f)); for (int i = 1; i <= n; ++i) for (int j = m; j >= w[i]; --j) { if (j == w[i]) f[j]++; else if (j > w[i]) f[j] += f[j - w[i]]; } printf("%d\n", f[m]); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dllglvzhenfeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值