A - 小彭玉的扫荡食堂计划

A - 小彭玉的扫荡食堂计划

Time Limit: 20000/10000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others)

Submit Status

Problem Description

哗啦啦村的食堂很奇怪,就是如果这个饭卡所剩金额低于5元的话,这个饭卡就不能刷了。

也就是说,只要这个饭卡金额大于等于5元,就可以随便刷~

有一天,小彭玉看了看哗啦啦食堂的饭,“哇,好好吃!我要全部都买下来!”

但是小彭玉并没有那么多钱,于是他准备充分利用自己的钱,去买这些食物!

请问最后小彭玉的饭卡余额最少能到多少?

Input

多组测试数据(最多100组)

第一行 n,表示有n个菜

第二行 接下来n个数字,a[i]表示第i道菜多少钱

第三行 一个数m,表示小彭玉的饭卡,一开始有m元

1<=n<=1000,1<=a[i]<=10000,1<=m<=10000

Output

输出一个整数,表示最后饭卡显示的金额数

Sample Input

1
10000
6
10
1 2 3 2 1 1 2 3 2 1
50

Sample Output

-9994
32解法:01背包的使用,因为5块钱可以买任何东西,所以,我们把价格最贵的菜独自拿出来,我们只需要用(N-1)份菜去查找价钱容量为(M-5),所能够买到的最大值。最后在减去价格最大的那份菜的价格即可。

 1 #include<stdio.h>
 2  #include<string.h>
 3  #include<iostream>
 4  #include<algorithm>
 5  using namespace std;
 6  #define MAX 10100
 7  int DP[MAX];
 8  int val[MAX];
 9  int main()
10  {
11      int N,M,i,j,Max;
12      while(scanf("%d",&N)!=EOF)
13      {
14         for(i=0,Max=0;i<N;i++)
15         {
16             scanf("%d",&val[i]);
17             if(val[i]>Max)Max=val[i];/*取最大值*/
18         }
19         scanf("%d",&M);
20         for(i=0;i<=M;i++)DP[i]=0;
21         if(M<5||N==0){printf("%d\n",M);continue;}
22         else
23         {
24             int sign=1;
25             for(i=0;i<N;i++)
26             {
27                 if(sign&&val[i]==Max)/*去除一次最大值*/
28                     {sign=0;continue;}
29                 for(j=M-5;j>=val[i];j--)
30                 {
31                     if(DP[j]<DP[j-val[i]]+val[i])
32                     {
33                         DP[j]=DP[j-val[i]]+val[i];
34                     }
35                 }
36             }
37             printf("%d\n",M-DP[M-5]-Max);
38         }
39      }
40      return 0;
41  }

时间: 2024-08-09 20:09:07

A - 小彭玉的扫荡食堂计划的相关文章

acdream 1725 哗啦啦的小彭玉染色问题 离散化并查集

哗啦啦的小彭玉染色问题 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acdream.info/problem?pid=1725 Description 哗啦啦,哗啦啦~ 小彭玉很开心,拿着一堆海报就开始宣传明天要开始的哗啦啦大会了~ 小彭玉很可爱,他的海报都是五颜六色的~ 哗啦啦,哗啦啦~ 小彭玉在一个巨大的宣传栏上贴了一大堆海报! “真是好看呢!”,唐老师说道. 唐老师这时,就想出了一个题目,“这面宣传栏,最后能看见多少颜色呢?” 狗

广义后缀自动机

1).自动机的介绍 首先我们先来介绍一下什么是自动机,有限状态自动机的功能是识别字符串,令一个自动机A,若他能识别字符串S,就记为A(S)=Ture,否则A(S)=False. 自动机由五个部分组成,alpha:字符集,state:状态集合,init:初始状态,end:结束状态集合,trans:状态转移函数. 令trans(s,ch)表示当前状态是s,在读入字符ch之后,所到达的状态.如果trans(s,ch)这个转移不存在,为了方便,设其为null,同时null只能转移到null.null表示

小明的存钱计划

描述 小明的零花钱一直都是自己管理.每个月的月初妈妈给小明300元钱,小明会预算这个月的花销,并且总能做到实际花销和预算的相同. 为了让小明学习如何储蓄,妈妈提出,小明可以随时把整百的钱存在她那里,到了年末她会加上20%还给小明.因此小明制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果他预计到这个月的月末手中还会有多于100元或恰好100元,他就会把整百的钱存在妈妈那里,剩余的钱留在自己手中. 例如11月初小明手中还有83元,妈妈给了小明300元.小明预计11月的花销是180元,那

NYOJ 小明的存钱计划

小明的存钱计划 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 小明的零花钱一直都是自己管理.每个月的月初妈妈给小明300元钱,小明会预算这个月的花销,并且总能做到实际花销和预算的相同. 为了让小明学习如何储蓄,妈妈提出,小明可以随时把整百的钱存在她那里,到了年末她会加上20%还给小明.因此小明制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果他预计到这个月的月末手中还会有多于100元或恰好100元,他就会把整百的钱存在妈妈那里,剩余的钱留在自己手中.

小明的存钱计划 南阳acm54

小明的存钱计划 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 小明的零花钱一直都是自己管理.每个月的月初妈妈给小明300元钱,小明会预算这个月的花销,并且总能做到实际花销和预算的相同. 为了让小明学习如何储蓄,妈妈提出,小明可以随时把整百的钱存在她那里,到了年末她会加上20%还给小明.因此小明制定了一个储蓄计划:每个月的月初,在 得到妈妈给的零花钱后,如果他预计到这个月的月末手中还会有多于100元或恰好100元,他就会把整百的钱存在妈妈那里,剩余的钱留在自己手中.

【每日Scrum】第一天 7-magic Sprint1计划会议成果

[每日Scrum]第一天  7-magic Sprint1计划会议成果 ——小组成员:崔乐乐 黄肖飞 唐仙迪 赵玉璇   Sprint计划会议非常关键,应该算是Scrum中最重要的活动.要是它执行的不好,整个sprint甚至都会被毁掉. 举办Sprint计划会议,是也为了让团队获得足够的信息,能够在几个星期内不受干扰地工作,也是为了让产品负责人能对此有充分的信心. 为了让我们的产品能够顺利的降生,我们组进行了sprint1计划,主要是为了在先前评估的成果基础上,定出 Sprint 目标和既定产品

nyoj-54-小明的存钱计划

小明的存钱计划 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 小明的零花钱一直都是自己管理.每个月的月初妈妈给小明300元钱,小明会预算这个月的花销,并且总能做到实际花销和预算的相同. 为了让小明学习如何储蓄,妈妈提出,小明可以随时把整百的钱存在她那里,到了年末她会加上20%还给小明.因此小明制定了一个储蓄计划:每个月的月初,在 得到妈妈给的零花钱后,如果他预计到这个月的月末手中还会有多于100元或恰好100元,他就会把整百的钱存在妈妈那里,剩余的钱留在自己手中.

巧用Windows 7计划任务设置定时提醒

Windows 7系统有个“计划任务”功能,一般人都很少使用.其实,“计划任务”是系统自带的一个很实用的功能,比如说,这个功能可以设置定时提醒,这样在使用电脑时就不会因为太过投入而导致错过重要的事务.下面,小编就介绍一下这个“计划任务”功能的具体使用方法. 工具/原料 Windows 7计划任务 方法/步骤 1 单击开始菜单,在最下方的搜索框里搜索“计划任务”,再单击打开“任务计划程序”. 2 在“任务计划程序”窗口单击“创建基本任务”,打开“创建基本任务向导”.   输入任务的“名称”以及“描

hive高阶1--sql和hive语句执行顺序、explain查看执行计划、group by生成MR

hive语句执行顺序 msyql语句执行顺序 代码写的顺序: select ... from... where.... group by... having... order by.. 或者 from ... select ... 代码的执行顺序: from... where...group by... having.... select ... order by... hive 语句执行顺序 大致顺序 from... where.... select...group by... having