ssl1377-竞赛真理【dp之分组背包】
其实这题很简单,我也不想多讲,但没办法老师要我们发博客╭(╯^╰)╮
Description
TENSHI在经历了无数次学科竞赛的失败以后,得到了一个真理:做一题就要对一题!但是要完全正确地做对一题是要花很多时间(包括调试时间),而竞赛的时间有限。所以开始做题之前最好先认真审题,估计一下每一题如果要完全正确地做出来所需要的时间,然后选择一些有把握的题目先做。 当然,如果做完了预先选择的题目之后还有时间,但是这些时间又不足以完全解决一道题目,应该把其他的题目用贪心之类的算法随便做做,争取“骗”一点分数。
任 务 :根据每一题解题时间的估计值,确定一种做题方案(即哪些题目认真做,哪些题目“骗”分,哪些不做),使能在限定的时间内获得最高的得分,
Input
第一行有两个正整数N和T,表示题目的总数以及竞赛的时限(单位秒)。以下的N行,每行4个正整数W1i 、T1i 、W2i 、T2i ,分别表示第i题:完全正确做出来的得分,完全正确做出来所花费的时间(单位秒),“骗”来的分数,“骗”分所花费的时间(单位秒)。
其中,3 ≤ N ≤ 30,2 ≤ T ≤ 1080000,1 ≤ W1i 、W2i ≤ 30000,1 ≤ T1i 、T2i ≤ T。
Output
所能得到的最高分值
Sample Input
样例1
4 10800
18 3600 3 1800
22 4000 12 3000
28 6000 0 3000
32 8000 24 6000
样例2
3 7200
50 5400 10 900
50 7200 10 900
50 5400 10 900
Sample Output
样例1
50
样例2
70
解题思路
分组背包不解释。
代码
#include<cstdio>
#include<iostream>
using namespace std;
int w[31][2],c[31][2],f[1080000],m,n,t,p;
int main()
{scanf("%d%d",&n,&m);for (int i=1;i<=n;i++){scanf("%d%d%d%d",&c[i][0],&w[i][0],&c[i][1],&w[i][1]);}//输入for (int i=1;i<=n;i++)for (int j=m;j>=0;j--)for (int k=0;k<=1;k++)//分组背包if (j>=w[i][k]){f[j]=max(f[j],f[j-w[i][k]]+c[i][k]);//动态转移方程}printf("%d",f[m]);
}
ssl1377-竞赛真理【dp之分组背包】相关推荐
- hdu 5148 树形dp,分组背包
题目: 题目分析: 状态方程: dp[当前节点的标号][当前已经选取的城市数] 设已经选取的城市数是K 初始状态: dp[u][0] = dp[u][1] = 0 , 其他的将值设置为无穷大 树形转移 ...
- zcmu2165(分组背包)
2165: 黄金矿工 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 86 Solved: 41 [Submit][Status][Web Board ...
- 2019年湘潭大学程序设计竞赛(重现赛)补题:H.Chat(分组背包)
链接:https://ac.nowcoder.com/acm/problem/25581 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...
- 【背包DP练习】洛谷 P5020货币系统 P1757通天之分组背包 P1064[NOIP2006 提高组]金明的预算方案 P5322 [BJOI2019]排兵布阵
洛谷 P5020货币系统 https://www.luogu.com.cn/problem/P5020 思路是把货币从小到大排序,然后按顺序依次完全背包dp,每次dp检查i-1种面值的货币能不能凑出第 ...
- 动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包,混合背包
动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包 01背包 && 完全背包 && 分组背包 の 视频教程:https://www.bilibi ...
- 洛谷:P4516 [JSOI2018] 潜入行动(树形dp、树上分组背包统计方案数)
潜入行动 题意: 在树上每个点可以放置监控设备,监控该点周围的点(不包括该点),问刚好放置 k 个监控设备监控使得整棵树所有点都被监控的方案数是多少. 思路: 显然是个树形dp,k个监控自然联想分组背 ...
- ZOJ 3450 Doraemon's Railgun (DP·分组背包)
题意 多啦A梦有一个超电磁炮 然后要打死n堆敌人 在同一条射线上的敌人只有先打死前面的一堆才能打后面的一堆 给你打死某堆敌人需要的时间和这堆敌人的人数 问你在T0时间内最多打死多少个敌人 ...
- 牛客挑战赛34 A 能天使的愿望 (dp 分组背包)
链接:https://ac.nowcoder.com/acm/contest/2271/A 来源:牛客网 题目描述 出题人寄给大家的一些闲话:参加了CSP-J/S 2019 的同学,考的都怎么样啊?不 ...
- 分组背包----HDU1712 ACboy needs your help
很简单的一道分组背包入门问题.不多解释了. 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring&g ...
最新文章
- AI 芯片的分类及技术
- Mysql锁专题:InnoDB锁概述
- VS.Net中程序集的Debug版本和Release版本的区别
- time库是python中处理时间的标准库_python语言time库和datetime库基本使用详解
- 【传智播客】Javaweb程序设计任务教程 黑马程序员 第二章 课后答案
- IOS之Swift5.x和OC网络请求JSON
- hackgame汇总
- Jetty入门(1-1)Jetty入门教程
- css 动画类库Animate.css
- Autodesk BIM 360将基础设施建模也推向云端
- 日常小tip_Bat命令运行Java程序
- UKEY开发 用户登录流程
- 手机看java源码软件_pin.java 源代码在线查看 - 一个专门为手机写的程序 资源下载 虫虫电子下载站...
- 优锘科技:ThingStudio森工厂掀起数字孪生龙卷风暴
- windows下大文件复制工具介绍
- 固体或液体体积与分子势能的关系——摘自《中学物理教学参考》
- android ota功能,支持 OTA 更新 | Android 开源项目 | Android Open Source Project
- PDPS软件:机器人焊枪工具自动选取功能介绍与使用方法
- 《Operating System Concepts(操作系统概念)》课程学习(1)——Chapter 1 Introduction(第1章 绪论)
- 《听--海的声音》项目
热门文章
- java 位运算_java学习之运算符与表达式(四)
- JAVA设置新视口,java – 在更大的图像上移动视口; JLablel JScrollPane
- 索尼android 怎么截屏快捷键,索尼XZ Premium怎么截屏 2种索尼XZ Premium截图方法
- c语言next的用法,C语言strchr使用之Next查找和截断想要的字符串
- leetcode117. 填充每个节点的下一个右侧节点指针 II(层序遍历08)
- 修改linux路径,科学网-修改linux终端路径颜色-胡涛的博文
- 算法-计算逆序对个数
- 37岁跳槽去阿里 p8_36岁阿里p8发帖:手下12个p7,17个p6,亲自写代码毫无中年危机...
- all()与any()
- 二叉树先序,中序,后序,层次遍历(数据结构)