//
问题 A: 奖品
时间限制: 1.000 Sec  内存限制: 128 MB题目描述
托塔李天王的三太子那吒,本领高强,他要赶在奥林匹克运动会之际,开一个头脑 奥林匹克比赛,获胜者的奖品就是经过提炼后的“氦-3”晶结体;
该物质在月球上大量 存在,是一种无色、无味的氦气同位素,它在核聚变研究中有重要作用。
氦-3还是一种 绝对清洁的能源,因为它本身不带放身性,因此不会产生任何放射性废料。可是如果从 月球上将该晶体运回地球呢?那吒说:用我的肚兜吧!
当然他的肚兜易受太阳风等因素 的影响,载重量不能超过k(1<=k<=100000),超过这个值,肚兜就不会飞了;
这个k值 那吒会告诉你的,同时还会告诉你每一个晶体的重量。 你的任务是使这个肚兜一次能运回更多的晶体。
输入
有两行 第一行有两个正整数n和k,用一个空格隔开。表示有n个晶体,肚兜最大载重量为k。 第二行有n个不超过10000的正整数,分别表示n个晶体的重量,数与数之间用一个空 格隔开。
输出
只有一行,该行只有一个正整数,表示那吒的肚兜一次能运回 的晶体重量的最大值。
样例输入 Copy
5 15
2 4 4 8 10
样例输出 Copy
14
提示
[数据限制]
40%的数据: 1<=n<=20
100%的数据: 1<=n<=100
//
// dp
#include<bits/stdc++.h>
using namespace std;const int MAXN=1e5+6;
int a[111],dp[111][MAXN];int main()
{int n,k,i,j;while( ~scanf("%d%d",&n,&k) ){memset( a,0,sizeof( a ) );memset( dp,0,sizeof( dp ) );for( i=1;i<=n;i++ ) scanf("%d",&a[i]);for( i=1;i<=n;i++ ){for( j=1;j<=k;j++ ){if( j<a[i] ) dp[i][j]=dp[i-1][j];else         dp[i][j]=max( dp[i-1][j],dp[i-1][j-a[i]]+a[i] );}}printf("%d\n",dp[n][k]);}return 0;
}
// 二维 dp
#include<bits/stdc++.h>
using namespace std;const int MAXN=1e5+6;
int a[111],dp[2][MAXN];int main()
{int n,k,i,j,k1,k2,temp;while( ~scanf("%d%d",&n,&k) ){k1=0,k2=1;memset( a,0,sizeof( a ) );memset( dp,0,sizeof( dp ) );for( i=1;i<=n;i++ ) scanf("%d",&a[i]);for( i=1;i<=n;i++ ){for( j=1;j<=k;j++ ){if( j<a[i] ) dp[k2][j]=dp[k1][j];else         dp[k2][j]=max( dp[k1][j],dp[k1][ j-a[i] ]+a[i] );}temp=k1; k1=k2; k2=temp;            // 位置很关键}printf("%d\n",dp[k1][k]);}return 0;
}
//
find:
01 因为本轮状态只和前一轮有关 所以二维 dp 可以大大减少空间
02 二维 dp 时 参数交换的位置很关键 ( 别放 j 循环里头了 )

Contest3145 - 2021级新生个人训练赛第37场_A: 奖品相关推荐

  1. Contest3121 - 2021级新生个人训练赛第26场_问题 F: 乐乐的数字

    // 问题 F: 乐乐的数字 时间限制: 1.000 Sec 内存限制: 128 MB题目描述 乐乐做完数学作业,突发奇想定义了一种新的数:乐乐数.乐乐把n个数排成一行,一个数的"乐乐数&q ...

  2. 2021级新生个人训练赛第38场

    问题 A: chicken 题目描述 小 x 非常喜欢小鸡翅.他得知 NSC 超市为了吸引顾客,举行了如下的活动: 一旦有顾客在其他超市找到更便宜的小鸡翅,NSC 超市将免费送给顾客 1000g 小鸡 ...

  3. 2021级新生个人训练赛第40场

    问题 A: 多项式输出 题目描述 一元 n 次多项式可用如下的表达式表示: 其中,aixi称为 i 次项,ai 称为 i 次项的系数.给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该 ...

  4. Contest3117 - 2021级新生个人训练赛第24场_问题 E: 打印方阵

    问题 E: 打印方阵 时间限制: 1.000 Sec 内存限制: 128 MB题目描述 下面这样的方阵很有规律,称为蛇形方阵.例如3*3的: 1 2 3 6 5 4 7 8 9 现在给定边长,输出相应 ...

  5. Contest3143 - 2021级新生个人训练赛第36场_B: 数字游戏

    // 问题 B: 数字游戏 时间限制: 1.000 Sec 内存限制: 512 MB题目描述 有一天,小明给佳佳出了一道题, 给出一个正整数n,佳佳可以进行如下三种操作: 1.使n减去1 2.如果n是 ...

  6. Contest3125 - 2021级新生个人训练赛第27场_问题 F: 兔子

    //问题 F: 兔子 时间限制: 1.000 Sec 内存限制: 128 MB题目描述 从左往右有100000001个整数点,分别是整数点0至整数点100000000.有n只兔子,第i只兔子在整数点d ...

  7. 2021级新生个人训练赛第36场

    问题 A: 礼物 题目描述 在一个n×n的网格图上,放置着m个礼物,每个礼物有一个价值vi(1≤i≤m),你可以选择一个礼物,然后选择: (1)取走与它同列的所有礼物,或者(2)取走与它同行的所有礼物 ...

  8. [2021.11.19]UPC-2021级新生个人训练赛第4场-19278 Problem D 关门

    题目描述 为了将这些生产的玩具销往海外,晚上江北的玩具公司灯火通明.安安是公司的保安,当所有工作人员离开公司后,他要把公司里所有的门都关闭.房间的门有些是关闭的,有些是打开的.为了察看该公司里所有房间 ...

  9. [2022.1.13]UPC-2021级新生个人训练赛第22场-9783 Problem H 铺地砖

    问题 H: 铺地砖 时间限制: 1.000 Sec 内存限制: 128 M 题目描述 一天,晨晨的数学老师布置了一道题目,大意如下:用1×1和2×2的磁砖不重叠地铺满n×3的地板,共有多少种方案? 例 ...

最新文章

  1. 成员函数和友元函数实现一元运算符重载
  2. Java技术分享:NIO实战教程!
  3. 2019蓝桥杯省赛b组
  4. 数据结构与算法之判断一棵树是否为搜索二叉树、判断一棵树是否是完全二叉树
  5. libevent学习笔记 一、基础知识
  6. 【转】Dynamics CRM:“the given key was not present in the dictionary”
  7. ORACLE 小时值必须介于1和12之间 解决方法
  8. 花书+吴恩达深度学习(二二)自编码器(欠完备,DAE,CAE,PSD)
  9. 计算机页面图形颠倒,电脑屏幕倒过来了如何解决
  10. 拓端tecdat|关联规则APRIORI挖掘豆瓣读书评论爬虫采集数据与可视化
  11. Firefox XPI插件安装方法
  12. 【195】apache2.4安装ssl 证书
  13. IT行业市场人才需求
  14. 如何申请注册微信公众号
  15. bzoj1779 [Usaco2010 Hol]Cowwar 奶牛战争(网络流)
  16. Shiro框架学习笔记、整合Springboot、redis缓存
  17. A*算法实现9宫格拼图游戏最优解
  18. 【C++】7-41 互评成绩(PTA)
  19. Tushare库之Libor拆借利率
  20. 安卓程序 静默 截屏工具_安卓定制系统开放性对比测试:到底谁最自由?

热门文章

  1. 一个屌丝程序猿的人生(八)
  2. ASO优化:关键词排名下降的原因及策略解析
  3. 为什么Lisp语言如此先进?(译文)
  4. 英语不好学java好学吗_英语不好能学好java,做程序员吗?
  5. Magisk root 原理分析之二 :Android Verified Boot (AVB)
  6. 最低成本的ARM调试解决方案——有关于Wiggler、H-Jtag、OpenOCD、GDB
  7. 数据挖掘Task 5: 模型融合
  8. jquery获取已选择和未选择的checkBox项以及清空所选项
  9. Python学习(中一)
  10. 入手评测 海信65e7g pro和雷鸟65r645c 选哪个