购物打折C语言程序设计,算法提高 促销购物(动态规划+完全背包)-----------------C语言——菜鸟级...
问题描述
张超来到了超市购物。
每个物品都有价格,正好赶上商店推出促销方案。就是把许多东西一起买更便宜(保证优惠方案一定比原价便宜)。物品要买正好的个数,而且不能为了便宜而买不需要的物品。
张超拿到了优惠方案,和需要购买的物品清单,当然想求出最小的花费。他是信息学选手,自然地想到写个程序解决问题。
输入格式
第一行促销物品的种类数(0 <= s <= 99)。
第二行..第s+1 行每一行都用几个整数来表示一种促销方式。
第一个整数 n (1 <= n <= 5),表示这种优惠方式由 n 种商品组成。
后面 n 对整数 c 和 k 表示 k (1 <= k <= 5)个编号为 c (1 <= c <= 999)的商品共同构成这种方案。
最后的整数 p 表示这种优惠的优惠价(1 <= p <= 9999)。也就是把当前的方案中的物品全买需要的价格。
第 s+2 行这行一个整数b (0 <= b <= 5),表示需要购买 b 种不同的商品。
第 s+3 行..第 s+b+2 行这 b 行中的每一行包括三个整数:c ,k ,和 p 。
C 表示唯一的商品编号(1 <= c <= 999),
k 表示需要购买的 c 商品的数量(1 <= k <= 5)。
p 表示 c 商品的原价(1 <= p <= 999)。
最多购买 5*5=25 个商品。
输出格式
一个整数ans,表示需要花的最小费用
样例输入
2
1 7 3 5
2 7 1 8 2 10
2
7 3 2
8 2 5
样例输出
14
思路: 动态规划 完全背包 变形
#include
#include
long int bj(long int a,long int b)
{ return a
}
int main()
{ long int s,i,j,j1,b,ans=0,dans=0,b1,b2,b3,b4,b5;
long int sn[101];//sn[i]第i种促销种类的物品数
long int c[101][7],k[101][7],p[101],xc[7]={0},xp[7]={0},xk[7]={0};
long int dp[6][6][6][6][6];//dp[2][3][4][1][0]代表 当前第 1~5 个物品 分别 购2 3 4 1 0 件所需最少钱
long h[6]={0};//h[i] 表示 i 号商品促销数量
long sbh[1001]={0};//标号表 链接 促销序号和需买序号的桥梁
scanf("%ld",&s);
for(i=1;i<=s;i++)
{
scanf("%ld",&sn[i]);
for(j=1;j<=sn[i];j++)
scanf("%ld%ld",&c[i][j],&k[i][j]);
scanf("%ld",&p[i]);
}
scanf("%ld",&b);
for(i=1;i<=b;i++)
scanf("%ld%ld%ld",&xc[i],&xk[i],&xp[i]);
for(j=1;j<=b;j++)//初始化需求物品的数量 sbh[i] 代表需求品序号 存 需求数量
sbh[xc[j]]=j;
for(b1=0;b1<=xk[1];b1++)
for(b2=0;b2<=xk[2];b2++)
for(b3=0;b3<=xk[3];b3++)
for(b4=0;b4<=xk[4];b4++)
for(b5=0;b5<=xk[5];b5++)
if(b1*xp[1]+b2*xp[2]+b3*xp[3]+b4*xp[4]+b5*xp[5])dp[b1][b2][b3][b4][b5]=b1*xp[1]+b2*xp[2]+b3*xp[3]+b4*xp[4]+b5*xp[5];
dp[0][0][0][0][0]=0; //初始化 原价购买
for(i=1;i<=s;i++)
{
for(j=1;j<=sn[i];j++)
if(xk[sbh[c[i][j]]]
if(j
for(j=1;j<=sn[i];j++)
h[sbh[c[i][j]]]=k[i][j];
for(b1=h[1];b1<=xk[1];b1++)
for(b2=h[2];b2<=xk[2];b2++)
for(b3=h[3];b3<=xk[3];b3++)
for(b4=h[4];b4<=xk[4];b4++)
for(b5=h[5];b5<=xk[5];b5++)
dp[b1][b2][b3][b4][b5]=bj(dp[b1][b2][b3][b4][b5],dp[b1-h[1]][b2-h[2]][b3-h[3]][b4-h[4]][b5-h[5]]+p[i]);
for(j=1;j<=sn[i];j++)
h[sbh[c[i][j]]]=0;
}
ans=dp[xk[1]][xk[2]][xk[3]][xk[4]][xk[5]];
printf("%ld\n",ans);
return 0;
}
购物打折C语言程序设计,算法提高 促销购物(动态规划+完全背包)-----------------C语言——菜鸟级...相关推荐
- Java实现 蓝桥杯VIP 算法提高 促销购物
算法提高 促销购物 时间限制:1.0s 内存限制:256.0MB 问题描述 张超来到了超市购物. 每个物品都有价格,正好赶上商店推出促销方案.就是把许多东西一起买更便宜(保证优惠方案一定比原价便宜). ...
- java算法买3瓶送1瓶_Java实现 蓝桥杯VIP 算法提高 促销购物
算法提高 促销购物 时间限制:1.0s 内存限制:256.0MB 问题描述 张超来到了超市购物. 每个物品都有价格,正好赶上商店推出促销方案.就是把许多东西一起买更便宜(保证优惠方案一定比原价便宜). ...
- 北华大学计算机程序设计算法提高训练营个人赛(无L)
北华大学计算机程序设计算法提高训练营个人赛(无L) 明明是北华大学的训练赛,结果被屠榜了hhh,L防ak题吧这也太难了 A-洛姐打题日记 题目描述 洛姐开开心心地打题,可是她看不懂评测机给的判定结果, ...
- 蓝桥杯试题 算法提高 扶老奶奶过街(C语言)
试题 算法提高 扶老奶奶过街(C语言) 资源限制 时间限制:1.0s 内存限制:256.0MB 一共有5个红领巾,编号分别为A.B.C.D.E,老奶奶被他们其中一个扶过了马路. 五个红领巾各自说话: ...
- 如何将计算思维融合到C语言程序设计中,利用案例融合计算思维与C语言教学
摘 要: C语言程序设计的教学目标是使学生利用C语言结合算法解决简单的实际问题.要实现该目标不仅要熟练掌握C语言本身的基本语法和结构,还要具备设计合理算法的思维能力.然而,当前各高校课程教学往往忽略思 ...
- C语言程序设计学习笔记:P1-程序设计与C语言
本系列博客用于记录学习浙江大学翁恺老师的C语言程序设计,系列笔记链接如下: C语言程序设计学习笔记:P1-程序设计与C语言 C语言程序设计学习笔记:P2-计算 C语言程序设计学习笔记:P3-判断 C语 ...
- 全国计算机等级考试二级教程c语言程序设计考试大纲,全国计算机等级考试二级C语言程序设计考试大纲.docx...
全国计算机等级考试二级C语言程序设计考试大纲 全国计算机等级考试二级C语言程序设计考试大纲(2013版) 基本要求 1.熟悉VisualC++6.0集成开发环境. 2.掌握结构化程序设计的方法,具有良 ...
- 超女选秀C语言程序设计,结构体数组 2013年计算机二级C语言程序设计考试大纲...
2013年是什么年?蛇年吗?答:2013年1月1日-2013年2月9日是农历壬辰年(龙年):2013年2月10日-2013年12月31日是农历癸巳年(蛇年).由于2013年指的是公历年,所以要给它转换 ...
- 华南农业大学c语言程序设计实验指导书参考答案,华南农业大学C语言程序设计实验指导书参考答案.doc...
华南农业大学C语言程序设计实验指导书参考答案 华南农业大学c语言程序设计上机指导书参考答案 上级实验参考答案#include "stdio.h" #include"mat ...
最新文章
- Hadoop的基础架构
- 算法62---最长回文子序列长度(子串)、回文子序列总共个数(子串)【动态规划】...
- 周期均方根和有效值的区别_茅台王子酒和迎宾酒的区别是什么?
- 298. Binary Tree Longest Consecutive Sequence
- java 序列化工具kryo_java jackson avro kryo等几种序列化与反序列化工具的使用
- PHP面试题及答案(一)
- Xshell清屏快捷键
- python快速编程入门教材免费阅读,Python快速编程入门(第2版)
- 【概率论与数理统计 Probability and Statistics 3】—— (important)全概率公式和贝叶斯公式
- 米勒拉宾算法(素性测试)
- 【Qualcomm】在EFS的NV项中关闭VoLTE高清语音服务
- 手把手系列之三十二——手把手教你做香果魔芋
- 终身受用的企业网盘文件管理方案!
- 推荐一个开源低代码开发平台 Corteza
- MNIST数据集学习
- 三维偏序/cdq分治/
- python图片截取特定部分_如何在Python中使用OpenCV提取图像的特定部分?
- 2021西湖论剑wp
- 解决联发科mt7921网卡在ubuntu下没有wifi的问题
- CPU硬件辅助虚拟化技术
热门文章
- 把图片后缀变为jpg格式
- 软件测试工程师实际工作中常遇到的问题及解决方案
- php,mysql的简历_PHP开发工程师岗位个人简历个人技能范文
- 关于毫米波雷达的使用方法
- 电脑win10计算机图标,win10系统桌面的计算机图标没了的详细技巧
- 转:【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀
- docker使用MySQL镜像
- python自动组卷系统_基于遗传算法(C#编写)的智能组卷系统优化
- 【FMC134】ADC12DJ3200之4通道3.2GSPS(2 通道6.4GSPS) 12 位AD高速采集子卡设计原理图及调试经验
- Xamarin Forms 构建 WPF 版项目失败提示 XamlC error XFC0000 错误