NUIST 9th 校赛 P4

题目描述

每天我们都会思考一个令人纠结的难题:晚上吃什么。你打开手机想点个外卖,发现自己有一张满减优惠券快要过期了。
你选择了一家餐厅,这家餐厅一共有 N 道菜品,价格分别是 A1, A2, … , AN 元。只要消费满 X 元,就可以用掉这张优惠券。
你希望选择若干道 不同 的菜品,使得总价在不低于 X 元的同时尽量低。
为了用掉这张优惠券,你最少需要消费多少元?

输入描述

题目包含多组测试数据。第一行包括一个正整数 T,代表测试数据的组数。
接下来的输入,对于每组测试数据:

第一行包含两个整数 N 和 X (1 ≤ N ≤ 20, 1 ≤ X ≤ 100)
第二行包含 N 个整数 A1, A2, … , AN (1 ≤ Ai ≤ 100)

输出描述

对于每组测试数据,输出最少的消费。如果你把 N 道菜都买了还不能达到 X 元的优惠标准,输出 -1。

样例输入

2
10 50
9 9 9 9 9 9 9 9 9 8

3 30
9 9 9

样例输出

53

-1

这道题是一道DP。
状态转移方程 F[i][j] = min(f[i-1][j],f[i-1][j-value[i]] )+ value[i]
f[i][j] = min(f[i-1][j] ,value[i])
关键在于它是如何体现F[i][j] 一定不少于X元
把所有的值初始化为BigINT,j = 0 时 为 0,用递推思想理解即可。假设j不存在,那么j+value[i],也一定不存在,因为,前面的数无法到达j,j+value[i],也到达不了。理解了这个思想,很容易就想出:

 for(int i = 1;i<=n;i++){for(int j = 1;j<=x;j++){if(j>=a[i][j]){dp[i][j] = min(dp[i-1][j],dp[i-1][j-a[i]]+a[i]);}else{dp[i][j] = min(dp[i-1][j],a[i]);}}}

空间复杂度为O(nx)时间复杂度(nx)
但是空间可以做出优化

 for(int i = 1;i<=n;i++){for(int j = x;j>=1;j--){if(j>=a[i]){dp[j] = min(dp[j],dp[j-a[i]]+a[i]);}else{dp[j] = min(dp[j],a[i]);}}}

区别在于j要从后往前

NUIST 9th 校赛 P4相关推荐

  1. [置顶]2010年东北大学ACM程序设计竞赛冬季校赛题解

    8题只做出4题比较easy的题,而且做得挺麻烦,看来还要多练练. AC的题如下 NEUOJ  1112 I Love Apple Description So many people love app ...

  2. 2017校赛 问题 F: 懒人得多动脑

    题目描述 小D的家A和学校B都恰好在以点F为焦点的双曲线上,而小D每日所需的生活水源在一条平行该双曲线准线的直线上,设它的值为v.大家都知道,每天都是要喝水的,但是小D有点懒,他希望自己能在去上学或者 ...

  3. 关于安徽赛区推广校赛的实施办法

    关于安徽赛区 推广校赛的实施办法 全国组委会:   安徽赛区作为第一个省级赛区自2010年举办至今,受到安徽省教育厅和安徽各高校高度认可,是安徽省教育厅重点支持的大学生学科和技能竞赛A类赛事.但安徽赛 ...

  4. 第18届浙江大学校赛 Mergeable Stack

    The 18th Zhejiang University Programming Contest Sponsored by TuSimple 第18届浙江大学校赛的c题 解析:起先是用stack写的模 ...

  5. 21-5-22校赛J 下围棋

    21-5-22校赛J 下围棋 给出一个节点个数为n的树,其根节点为1,两个人轮流操作,每一次操作可以选择一个非根节点,删除这个节点及其子树,当一个人无法进行操作的时候,他就输掉了.问后手是必胜还是必败 ...

  6. 21-5-22校赛G 自行车调度

    21-5-22校赛G 自行车调度 n个点,m条边的无向带正权图(编号1到n).每个点初始有a[i](0<=a[i]<=1e5,1<=i<=n)辆自行车,自行车管理员可以花费一个 ...

  7. 2018 java蓝桥杯校赛题目

    1.[问题描述] 100 可以表示为带分数的形式:100 = 3 + 69258 / 714 还可以表示为:100 = 82 + 3546 / 197 注意特征:带分数中,数字1~9分别出现且只出现一 ...

  8. BZOJ 3093: [Fdu校赛2012] A Famous Game

    3093: [Fdu校赛2012] A Famous Game Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 248  Solved: 133 [Su ...

  9. 三农电子商务创业创新大赛作品_全国大学生电子商务“创新、创意及创业”挑战赛五邑大学校赛...

    大赛简介 第十届全国大学生电子商务"创新.创意及创业"挑战赛(简称"三创赛")是由全国电子商务创新产教联盟主办,由"三创赛"竞赛组织委员会统 ...

最新文章

  1. 苹果笔记本中为虚拟机扩充硬盘的方法
  2. 按钮右对齐_9张图,学会Excel中的对齐技巧
  3. 一起教育科技携手神策数据,数据赋能智能教育新时代
  4. 史上卖得最多的芯片......原来是这个!
  5. php使用ftp远程上传文件类(解决主从文件同步问题的简单方法)
  6. java final date_Java中的时间和日期(上)
  7. 完美解决:Could not open the editor: Editor could not be initialized
  8. centos7 网卡配置vlan_Centos7单网卡带VLAN多IP配置
  9. 一名计算机教师的年度教学总结
  10. cur前缀_每个人必知的英语前缀大全
  11. VScode前进后退快捷键
  12. 10个有趣且易上手的AI项目(附Python源代码)
  13. python对英雄皮肤进行图片采集~
  14. 实训一 古诗横竖输出
  15. silverlight 无法启动调试 数据无效
  16. java入门基础学习
  17. 视频教程-OpenGL入门2019版-其他
  18. Python3改变cmd(命令行)输出颜色
  19. 支付宝微信扫码支付调研
  20. AUTOCAD(二)电脑桌绘制立面图

热门文章

  1. iWO(联通3G详单及套餐使用情况查询工具)更新至v0.7
  2. JAVA面试问答 NOTE2
  3. 全球海底光缆分布图-Submarine Cable Map
  4. MySQL 1226 User 'root' has exceeded the 'max_questions' resource解决办法
  5. windows小技巧---复制百度文库vip内容/解决微信文件过大
  6. 如何利用淘宝快速推广新品牌
  7. ACR Loss: Adaptive Coordinate-based Regression Loss for Face Alignment
  8. HTML罕见的冷门标签
  9. discuz论坛图片无法显示之图片流问题
  10. html语言全拼,html标签全拼意思是什么