小P的故事——神奇的饭卡

2023-12-14 07:38
文章标签 故事 神奇 饭卡

本文主要是介绍小P的故事——神奇的饭卡,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

话说sdut大学驰名已久,所以吸引了无数2014级的小学弟、小学妹们前来参加艺考,为了配合学校高大形象,校餐厅特提议推出一款高端大气上档次的神奇饭卡,供学弟、学妹们使用。
这个饭卡十分的神奇,如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少。可惜参加艺考的同学们不会程序设计,sad、、、所以机会来了啊,聪明的你快来帮他们解决问题吧!
已知餐厅中有n种菜出售,每种菜可购买一次。已知每种菜的价格以及饭卡上的余额,一位漂亮的小学妹向小P求助,问最少可使卡上的余额为多少。?小P激动的兴奋不已,但是他不会算、、、sad、、所以你的机会来了,你能把握住吗?

输入

多组数据。对于每组数据:
第一行为正整数n,表示菜的数量。n<=1000。
第二行包括n个正整数,表示每种菜的价格。价格不超过50。
第三行包括一个正整数m,表示卡上的余额。m<=1000。
n=0表示数据结束。

输出

对于每组输入,输出一行,包含一个整数,表示卡上可能的最小余额。

示例输入

1
50
5
10
1 2 3 2 1 1 2 3 2 1
50
0

示例输出

-45
32

///解析:如果卡里的钱大于5元时,则在使最后的钱能买一份最贵的菜时,剩余的钱先买,就是最后买最贵的菜,每买一次菜的时候卡里的钱都是大于5元的,就是01背包问题

///在输入菜价的时候,要记录下最贵的菜的价格,并将该菜的价格置为0,防止后面搜索的时候再将该菜加进去一遍,导致一道菜买两份。

#include<stdio.h>
#include<string.h>
#define N 100010
int dp[N];
int a[N];
int max(int a,int b)
{if(a>=b)return a;elsereturn b;
}
int main()
{int n,m,i,j,k,t;while(~scanf("%d",&n)){if(n==0){break;}else{for(i=0;i<=n-1;i++){scanf("%d",&a[i]);}///将菜价从高到底排序for(i=0;i<=n-2;i++){for(j=0;j<=n-i-2;j++){if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}int z=a[0];///记录下最贵的菜
a[0]=0;///将最贵的菜制零,防止买两次最贵的scanf("%d",&m);if(m<5){printf("%d\n",m);continue;}memset(dp,0,sizeof(dp));for(i=0;i<=n-1;i++){for(j=m-5;j>=a[i];j--)///j=m-5是要留下至少5元钱来买最贵的菜{dp[j]=max(dp[j],dp[j-a[i]]+a[i]);}}k=m-dp[m-5]-z;///表示最后卡里的钱printf("%d\n",k);}}return 0;
}




这篇关于小P的故事——神奇的饭卡的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Kafka拦截器的神奇操作方法

《Kafka拦截器的神奇操作方法》Kafka拦截器是一种强大的机制,用于在消息发送和接收过程中插入自定义逻辑,它们可以用于消息定制、日志记录、监控、业务逻辑集成、性能统计和异常处理等,本文介绍Kafk... 目录前言拦截器的基本概念Kafka 拦截器的定义和基本原理:拦截器是 Kafka 消息传递的不可或缺

Redis 管道的神奇力量

今天我们要来探索一个 Redis 中非常强大且实用的特性——管道(Pipeline)。如果你想让你的 Redis 操作更加高效,那么这篇文章绝对值得一读。 一、Redis 管道是什么 Redis 管道是一种在客户端和服务器之间批量执行命令的技术。它允许客户端将多个命令一次性发送到服务器,而不是逐个发送并等待每个命令的响应。服务器会按照顺序执行这些命令,并将所有命令的响应一次性返回给客户端。

入门篇:神奇的Annotation

涅槃1992 关注 2016.12.25 23:41* 字数 4964 阅读 1059评论 3喜欢 29 前面写了Android 开发:由模块化到组件化(一),很多小伙伴来问怎么没有Demo啊?之所以没有立刻放demo的原因在还有许多技术点没说完. 今天我们就来细细评味Java当中Annotation,也就是我们常说的注解. 本文按照以下顺序进行:元数据->元注解->运行时注解->编译时

接下来的这个故事就来自于我的先生,一个交警的口述

这可是没有过的事情。先生是个交通警察,在事故科工作已经五、六年了,对于生离死别、阴阳两隔,用他自己的话说是已经有些麻木了;不用说他,就连我,对那些卷宗里血淋淋的照片都已经有些漠然。他的办公室常有悲悲切切的人来哭诉,他却总能在复议时做到不掺杂感情。我是个爱哭的女人,偏偏先生对于眼泪早已有了职业的免疫力,他说要是每个事故他都要为每个逝者陪眼泪的话,他早就活不下去了,但是今天不同,他分明是掉过泪了。

一个人就能干一个团队剪辑工作?云微客就是这么神奇

你知道拍摄、剪辑一条视频需要花费多长时间吗?半个小时?还是一个小时呢?如果我想一天发布上百条视频,你觉得可能吗?很显然,仅凭个人是很难办到的,那么就需要借助工具,而云微客AI批量剪辑系统正好可以解决这个难题。 在当下这个短视频风靡的时代,不管是企业还是个人创作者们都需要借助各种工具和系统来提升创作内容的生产效率和传播效果。而云微客AI批量剪辑系统凭借着批量剪辑的功能,为创作者带来了很大的

JD 1204:农夫、羊、菜和狼的故事

OJ题目:click here~~ #define vegetable_go 0#define vegetable_come 1#define sheep_go 2#define sheep_come 3#define wolf_go 4#define wolf_come 5#define nothing_go 6#define nothing_come 7using

2020年数据术语的故事

点击上方蓝色字体,选择“设为星标” 回复”资源“获取更多资源 2020年整个技术圈子要说话题最多的,应该是大数据方向。新感念层出不穷,数据湖概念就是其中之一。这篇文章是关于数据仓库、数据湖、数据集市、数据中台等一些列的概念和发展进程。希望给大家带来一个全面的感知。 本文作者:Murkey学习之旅、开心自由天使 本文整理:大数据技术与架构,未经允许不得转载。 如今,随着诸如互联网以及物联网等

PMP–一、二、三模–分类–14.敏捷–技巧–故事点

文章目录 技巧一模14.敏捷--术语表-自组织团队--自组织团队是一种跨职能团队,其中为实现团队目标团队成员根据需要轮换着发挥领导作用。 自组织团队的核心就是做什么事情,团队成员说了算。61、 [单选] 作为估算活动持续时间过程的一部分,项目经理促成了与产品负责人和Scrum团队的冲刺计划会议。项目经理将用户故事分解为较小的任务项,以小时为单位估算所需时间,并根据团队的能力确定冲刺待办事项列

神奇的android广播

最近用了android的广播,个人感觉非常好用: 首先在你要接收的地方注册一个: context.registerReceiver(myReceiver, new IntentFilter("com.shic.action.d")); 然后就是定义注册的这个,在接收到广播后执行的操作: BroadcastReceiver myReceiver = new BroadcastRecei

神奇的babel

2015年,ECMA推出es6,在es5的基础上添加了各种人性化开发的新特性,详见es2015 让人头疼的是当下主流浏览器的JS引擎并不识别es6语法,所以我们需要将es6的语法翻译成es5的形式再提交给js引擎执行。 那有没有好的工具来实现两种标准之间的转换呢,有,babel。 好,既然用到babel,那么第一步肯定要在项目中安装babel。安装的方法可参照点击打开链接 npm i