小x买年货

2023-10-29 10:50
文章标签 年货

本文主要是介绍小x买年货,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

10.17模拟T2

春节将至,小x要去超市购置年货,于是小x去了自己经常去的都尚超市。刚到超市,小x就发现超市门口聚集一堆人。用白云女士的话说就是:“那家伙,那场面,真是人山人海,锣鼓喧天,鞭炮齐呤,红旗招展。那可真是相当的壮观啊!”。
好奇的小x走过去,奋力挤过人群,发现超市门口贴了一张通知,内容如下:值此新春佳节来临之际,为了回馈广大顾客的支持和厚爱,特举行春节大酬宾、优惠大放送活动。凡是都尚会员都可用会员积分兑换商品,凡是都尚会员都可免费拿 k 件商品,
blablabla…
还没看完通知,小x就高兴的要死,因为他就是都尚的会员啊。迫不及待的小x在超市逛了一圈发现超市里有 n 件他想要的商品。小x顺便对这 n 件商品打了分,表示商品的实际价值。小x发现身上带了 v1 的人民币,会员卡里面有 v2 的积分。他想知道他最多能买多大价值的商品。
由于小x想要的商品实在太多了,他算了半天头都疼了也没算出来,所以请你这位聪明的程序员来帮帮他吧。

输入
第一行是四个整数 n,v1,v2,k;

然后是 n 行,每行三个整数 a,b,val,分别表示每个商品的价钱,兑换所需积分,实际价值。

其中,1 <= n <= 100,0 <= v1, v2 <= 100,0 <= k <= 5,0 <= a, b, val <= 100。

Ps. 只要钱或者积分满足购买一件商品的要求,那么就可以买下这件商品。

输出
输出能买的最大价值。

样例输入
5 1 6 1

4 3 3

0 3 2 2 3 3

3 3 2

1 0 2

样例输出
12

数据范围限制
1 <= n <= 100,0 <= v1, v2 <= 100,0 <= k <= 5,0 <= a, b, val <= 100;

解题思路:比赛的时候看见数据小的很,然后题面的话就很像DP
所以一波判断后,直接开始推DP。
这题对于普通DP不同的是,它有两个条件可以来购买东西,所以我们先确定数组维数至少两维。
然后发现还能上头免费送(那个商城这样干啊,我也去……),一开始思路是贪心出按价格排序(当时思路很简单,我不买对的只买贵的还不行吗?)
这就有个问题,不买对的???
上头了吗,描述一下反例。假如说我现在选择了完了现在最值得选的,那我还有一个不贵但价值高的很的(比以前的还是差了一点),那你说我是选最贵的价值不高的免费好,还是这个不贵但价值高的好。

又有人说了,我按性价比排序不行吗,实在不行我按价值直接排序它不香吗?(不要忘记,如果排性价比要双关键字排序)
但是,如果按性价比排序我有一个性价比特别高(价格和积分消耗不高,但价值贼高的),那我选完了免费的,自己按价格选的。现在因为价格问题我选不了下面那个既便宜又有价值的,那这就不是最优解了(可能有点绕,再回来想一想我比赛的时候想这个点出对拍程序用了半小时)。同理,按价值排序也会被这样卡住。

所以我们选择一个冒险的决定,再开一个维度表示免费次数还剩多少。想到这里一个转移式就推出来了:设 F p , i , j , k F_{p,i,j,k} Fp,i,j,k为在选到P个物品的时候,还用i元钱,j积分,k免费机会的最大价值。
你可能要问了,这P不是废的吗
且听我慢慢道来……
所以转移式就是f1=f2=f3=-val[p];
if(i>=a[p]) f1=f[p-1][i-a[p]][j][k];
if(j>=b[p]) f2=f[p-1][i][j-b[p]][k];
if(k>=0) f3=f[p-1][i][j][k+1]+val[p];
f[p][i][j][k]=max(f[p-1][i][j][k],max(max(f1,f2)+val[p],f3));

好似没什么问题呢,好。
在这里插入图片描述

淦,怎么回事呢?比赛出来我人没了,要不是第一题给力我这前十估计上头。
这时,我也发现了P好似没有用诶,删了改一下。还有调整一下循环顺序,p,i,j,k(原来p,k,i,j)

10分……

我看到了一个地方,我要是在转移式中拿东西替代一下,这样会不会更准确一点(突发奇想)
说干就干:int find=f[i][j][k];
if(i>=a[p]) find=max(find,f[i-a[p]][j][k]+val[p]);
if(j>=b[p]) find=max(find,f[i][j-b[p]][k]+val[p]);
if(k>0) find=max(find,f[i][j][k-1]+val[p]);
f[i][j][k]=find,ans=max(ans,f[i][j][k]);

咦,这是……满分,我的*****
最后,附上代码:

#include<cstdio>
using namespace std;
int n,v1,v2,k,ans=-100005;
int a[105],b[105],val[105];
int f[105][105][7];
int max(int xx,int yy)
{if(xx>yy) return xx;else return yy;
}
int main()
{freopen("purcha.in","r",stdin);freopen("purcha.out","w",stdout);scanf("%d%d%d%d",&n,&v1,&v2,&k);for(int i=1;i<=n;++i) scanf("%d%d%d",&a[i],&b[i],&val[i]);for(int k=1;k<=n;++k)for(int x=k;x>=0;--x)for(int i=v1;i>=0;--i)for(int j=v2;j>=0;--j){int find=f[i][j][x];if(i>=a[k]) find=max(find,f[i-a[k]][j][x]+val[k]);if(j>=b[k]) find=max(find,f[i][j-b[k]][x]+val[k]);if(x>0) find=max(find,f[i][j][x-1]+val[k]);f[i][j][x]=find,ans=max(ans,f[i][j][x]);}printf("%d",ans);return 0;
} 

好啦,谢谢您的观看!

这篇关于小x买年货的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/300155

相关文章

【报告分享】2021年货节消费趋势报告-牛年new味-CBNData​(附下载)

摘要:天南地北年货大采购,各地消费有什么不同特色?除了购买传统年货,直播间促成了什么娱乐新场景?Z世代的眼中的“国潮”,是什么颜色?   来源:CBNData     如需查看完整报告和报告下载或了解更多,微信公众号:行业报告智库

【报告分享】新市井过大年-2022年年货节营销趋势报告-磁力引擎(附下载)

摘要:大背景下,“云逛街”逐步成为疫情中主流的消费方式,以直播带货为代表的社交电商崛起,信任经济正在高速发展,快手平台的优势进一步凸显。近年来随着我国整体经济水平的提升,人们对生活质量的要求不断提高。往期数据显示,21年年货节成交客单价明显提升,重金购年货现象的背后,是人们对商品品质要求的提高以及对直播电商信任度的大幅提升,其中休闲食品、新年服饰及美妆个护等品类成交额稳居前列。 来源:磁

【报告分享】百大品牌年货必备榜消费趋势报告-抖音电商(附下载)

摘要:回顾2021,“悦己”型消费井喷、国货国潮汹涌向前;健康消费成为用户最关注的日常,“吃喝玩乐”健康为首;品质好物上架秒光、高质量消费崛起正当其时;消费持续升级、人们更愿意为兴趣买单。瞭望2022,线上消费进入高速发展的快轨道,地域、品类、产品、品牌、人群渗透度在不同程度悄然而变;消费升级趋势不变,个性化、品质化、多元化需求愈发明显;线上线下全渠道加速融合,新业态、新模式消费层出不穷,边界

hdu-4501-小明系列故事——买年货(四维背包)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4501 #include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int dp[105][105][105][6];int main(){int n,v1,v2,k,a,b,val;while(~s

杭电4501-小明系列故事——买年货

小明系列故事——买年货 Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 1775    Accepted Submission(s): 781 Problem Description   春节将至,小明要去超市购置年货

hdu 4501 (多维背包)小明系列故事——买年货

这么多维的背包,第一次写。 刚开始,一直以一维背包的思维在写。一直wa。 后来,看了下网上的。一对照,发现,并不是对于小于w[i]的就不计算了。而是要计算到0,因为当一个状态不满足时,另两个状态可能满足,也是要计算的。 #include <iostream>using namespace std;int max(int a,int b){return a>b?a:b;}int

OneFlow技术年货:800+页免费“大模型”电子书

2023年,无论对人工智能领域还是整个科技界而言,“ChatGPT”无疑是本年度第一关键词。 这一年,在OneFlow社区发布的100多篇文章里,涉及大量与ChatGPT相关的大模型类技术解读、前瞻性观点以及开源故事,另有部分与深度学习框架相关的内容。 在内容快餐化时代,这些文章或许很长,但对于渴望深度了解前沿技术的人不可或缺。很高兴不断有新用户通过这些优质内容加入OneFlow社区,并给予我

“过年买年货,花光了我的年终奖”

【潮汐商业评论/原创】 前脚刚进家门,后脚快递电话一个接着一个。 临近春节,Julia是提前批回家的年轻人,与Julia一同到家的还有她的年货。上至大小家电,下到坚果零食,短短几天快递就堆满了客厅。 吃的喝的还能理解,但洗碗机、扫地机、按摩仪这些“非刚需品”,不免让父母发出“乱花钱”的警告。与此同时,面对大箱小箱现成的“年夜饭”大礼包,让需要年前到菜市场、海鲜市场做采买的Julia父

新年倒计时!换个有年味的虚拟直播间,让你的新春年货卖到爆!

氛围营造过新年,浓浓年味迎新春。新年正在倒计时,各个年货直播间也开始了激烈的竞争。据观察,今年不打烊的年货直播间越来越多,不仅是品牌直播间,还有许多中小商家和达人都在持续直播。当你发现你的直播间越来越留不住人、货越来越卖不动的时候,你是不是有点慌? 别急!不是每个不停播的直播间都在用脑子做直播的,除了努力,我们还需要更多策略和方法。比如,如何给自己的直播场景增加独特的新春年味?在众多同质

在优衣库新衣年货里,看见幸福感的“共振”

一场寒潮自北向南掠过,很多地区迎来瑞雪兆丰年的美好意象,年味渐浓,农历新年进入倒计时状态。带着对新年团聚的期许,置办年货,开始成为老百姓在这个时节的大事。 经历颇具魔幻色彩的2023年,“龙年”对中国人来说有着更特殊的寓意 —— 汇万物之长,祈盼美好齐聚、寄托勇气与希望。这份中国人独有的浪漫,最直接地反映在了“新年穿新衣”辞旧迎新的习惯。 门庭若市的优衣库店铺也给出了答案,就仿佛家门口你常见的