拼题 A 的教超搞打卡活动,指定了 N 张打卡卷,第 i 张打卡卷需要 mi​ 分钟做完,完成后可获得 ci​ 枚奖励的金币。活动规定每张打卡卷最多只能做一次,并且不允许提前交卷。活动总时长为 M 分钟。请你算出最多可以赢得多少枚金币?

输入格式:

输入首先在第一行中给出两个正整数 N(≤103) 和 M(≤365×24×60),分别对应打卡卷的数量和以“分钟”为单位的活动总时长(不超过一年)。随后一行给出 N 张打卡卷要花费的时间 mi​(≤600),最后一行给出 N 张打卡卷对应的奖励金币数量 ci​(≤30)。上述均为正整数,一行内的数字以空格分隔。

输出格式:

在一行中输出最多可以赢得的金币数量。

输入样例:

5 110
70 10 20 50 60
28 1 6 18 22

输出样例:

40

思路:01背包问题 时间约有53w 二维数组部分数据内存超限 需要优化成一维数组 然后发现 似乎一维数组时间也会超限。。。。我是真滴菜。。。

然后我看见大佬的解法:

用金币数量做二维dp 瞬间醒悟。。。三次代码都在下面。

二维dp代码:(存在内存超限的数据)

#include<iostream>
#include<algorithm>
#include<map>
#include<vector>
#include<string>
#include<set>
#include<math.h>
#include<stdio.h>
#include<stack>
#include<queue>
//#include<bits/stdc++.h>
using namespace std;int dp[1005][530000];
struct xy
{int x, y;
}m[1005];int main()
{int n, ti;cin >> n >> ti;for (int i = 1; i <= n; i++){cin >> m[i].x;}for (int i = 1; i <= n; i++){cin >> m[i].y;}dp[0][0] = 0;for (int i = 1; i <= n; i++){for (int j = 0; j <= ti; j++){dp[i][j] = dp[i - 1][j];if (j >= m[i].x){dp[i][j] = max(dp[i][j], dp[i - 1][j - m[i].x] + m[i].y);}}}cout << dp[n][ti] << endl;return 0;
}

一维dp代码: (时间超限)

#include<iostream>
#include<algorithm>
#include<map>
#include<vector>
#include<string>
#include<set>
#include<math.h>
#include<stdio.h>
#include<stack>
#include<queue>
//#include<bits/stdc++.h>
using namespace std;int dp[530000];
struct xy
{int x, y;
}m[1005];int main()
{int n, ti;cin >> n >> ti;for (int i = 1; i <= n; i++){cin >> m[i].x;}for (int i = 1; i <= n; i++){cin >> m[i].y;}dp[0] = 0;for (int i = 1; i <= n; i++){for (int j = 0; j <= ti; j++){dp[j] = dp[j];if (j >= m[i].x){dp[j] = max(dp[j], dp[j - m[i].x] + m[i].y);}}}cout << dp[ti] << endl;return 0;
}

大佬思路写的代码:

注意点:在第二重循环时 只能从sum-->0,

从0-->sum会错误一个数据 具体问题 测试半天找不出来 有知道的大佬 麻烦留言。。

#include<iostream>
#include<algorithm>
#include<map>
#include<vector>
#include<string>
#include<set>
#include<math.h>
#include<stdio.h>
#include<stack>
#include<queue>
//#include<bits/stdc++.h>
using namespace std;int dp[30005];
struct xy
{int x, y;
}m[1005];int main()
{fill(dp, dp + 30005, 550000);int n, ti;cin >> n >> ti;int sum = 0;for (int i = 1; i <= n; i++){cin >> m[i].x;}for (int i = 1; i <= n; i++){cin >> m[i].y;sum += m[i].y;}dp[0] = 0;for (int i = 1; i <= n; i++){for (int j = sum; j >= 0; j--){dp[j] = min(dp[j - m[i].y] + m[i].x, dp[j]);}}for (int i = sum; i >= 0; i--){if (dp[i] <= ti){cout << i << endl;break;}}return 0;
}

PTA-拼题A打卡奖励相关推荐

  1. PTA模拟赛 拼题A打卡奖励

    拼题 A 的教超搞打卡活动,指定了 N 张打卡卷,第 i 张打卡卷需要 mi​ 分钟做完,完成后可获得 ci​ 枚奖励的金币.活动规定每张打卡卷最多只能做一次,并且不允许提前交卷.活动总时长为 M 分 ...

  2. 7-2 拼题A打卡奖励 dp

    7-2 拼题A打卡奖励 分数 25 作者 陈越 单位 浙江大学 拼题 A 的教超搞打卡活动,指定了 N 张打卡卷,第 i 张打卡卷需要 m i ​ 分钟做完,完成后可获得 c i ​ 枚奖励的金币.活 ...

  3. 拼题A打卡奖励 (25 分),1355D,1362C;

    7-2 拼题A打卡奖励 (25 分)(背包) 题意: 求,从 n 个物品中选(每个物品有体积 vi, 价值 wi ),总体积不超过 m 的最大价值? n≤1e3,m≤7e5,vi≤600,wi≤30n ...

  4. L3-2 拼题A打卡奖励 (30 分)

    Powered by:NEFU AB-IN Link 文章目录 L3-2 拼题A打卡奖励 (30 分) 题意 思路 代码 L3-2 拼题A打卡奖励 (30 分) 题意 拼题 A 的教超搞打卡活动,指定 ...

  5. 天梯22模拟 L3-2 拼题A打卡奖励 (30 分)

    L3-2 拼题A打卡奖励 (30 分) 拼题 A 的教超搞打卡活动,指定了 N 张打卡卷,第 i 张打卡卷需要 m i 分钟做完,完成后可获得 c i 枚奖励的金币.活动规定每张打卡卷最多只能做一次, ...

  6. [dp]拼题A打卡奖励 2021RoboCom复赛B

    拼题 A 的教超搞打卡活动,指定了 N 张打卡卷,第 i 张打卡卷需要 mi​ 分钟做完,完成后可获得 ci​ 枚奖励的金币.活动规定每张打卡卷最多只能做一次,并且不允许提前交卷.活动总时长为 M 分 ...

  7. 2021 RoboCom 复赛 7-2 拼题A打卡奖励(背包)

    样例输入: 5 110 70 10 20 50 60 28 1 6 18 22 样例输出: 40 分析:一开始看这道题我以为就是一个普通的背包问题,然后我就按照普通的背包问题写了代码,交上后发现有几个 ...

  8. 《PTA——拼题A》之第1009题

    来源:http://www.adwardx.top/2018/08/05/<PTA--拼题A>之第1009题/ <Excerpt in index | 首页摘要> 如题 < ...

  9. 浙大PTA拼题A读者验证码刷题页面、PTA免费刷题页面(不需要读者验证码)

    有一个B站号@李桥桉,很多年前讲过PTA里的一些题目的解法.近两年有好多同学反馈,需要读者码才能进行答题,不然只能免费注册.看题.编写代码,就是不能提交代码(大受震撼). 咱就是说,会不会是同学们找错 ...

最新文章

  1. jquery判断页面是否滑动到最底部
  2. 【javascript】四舍五入
  3. AWK如何打印从某一列到最后一列的内容
  4. 【Vegas原创】终端服务器超出了最大允许连接数 解决方法
  5. ubuntu启动,而且找不到win10启动项!
  6. 吉特仓储管理系统--开源2018年源码
  7. abap al设置单元格可编辑 oo_利用WPS做业务系统的超级编辑器
  8. bash 历史记录_您将实际使用的7个Bash历史记录快捷方式
  9. 使用“管道”与“应用程序生命周期”重构:可插拔模块
  10. gnu ld链接出现“ no .eh_frame_hdr table will be created.”
  11. Output Arcade for Mac - 新型音频合成器
  12. tp3.2 执行原生sql
  13. SQL处理表结构的基本方法整理(创建表,关联表,复制表)
  14. 万物智能——百度世界2020”大会
  15. 2022 人工智能 AI 应用 top6
  16. LTE:下行峰值速率计算
  17. 大脑构造图与功能解析_人类大脑的生理构造及功能分区
  18. 5G中的一些简写和缩略语含义
  19. 洛谷 P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布
  20. 拆解了20个企业微信社群的我, 发现【社群营销】最好的方法应该是这样!

热门文章

  1. 一份好的简历应该这样做!
  2. J2EE工具类:CalendarUtil .java
  3. 计算机网络-tcp连接常见异常
  4. IP网络规划与路由设计
  5. Webtop Html5 桌面App开发 -- 整合人人网登陆
  6. oracle小鸡与合计,Excel EXCEL表中怎样快速实现小计和合计!excel小鸡 合计 总计
  7. c语言595驱动数码管,使用74hc595驱动一位数码管
  8. 应急响应 Windows和Linux操作系统(查杀 后门木马,处理 勒索病毒.)
  9. Fiddler:Fiddler新旧版抓包相关总结
  10. android爬楼梯动画,[转载]利用PPT的自定义动画功能制作爬楼梯的动态效果