题目背景

Lj的朋友WKY是一名神奇的少年,在同龄人之中有着极高的地位。。。

题目描述

他的老师老王对他的程序水平赞叹不已,于是下决心培养这名小子。

老王的训练方式很奇怪,他会一口气让WKY做很多道题,

要求他在规定的时间完成。

而老王为了让自己的威信提高,自己也会把这些题都做一遍。

WKY和老王都有一个水平值,他们水平值的比值和做这些题

所用时间的比值成反比。比如如果WKY的水平值是1,老王的水平值是2

那么WKY做同一道题的时间就是老王的2倍。

每个题目有他所属的知识点,这我们都知道,

比如递归,动归,最短路,网络流……

在这里我们不考虑这些事情,我们只知道他们分别是知识点1,知识点2……

每一个知识点有他对应的难度,比如动态规划经常难于模拟……

而每一个同一知识点下的题目,对于WKY来讲,都是一样难的。

而做出每一道题,老王都有其独特的奖励值。

而奖励值和题目的知识点没有必然联系。

现在WKY同学请你帮忙,计算

在老王规定的时间内,

WKY所能得到最大奖励值是多少 。

输入输出格式

输入格式:

输入文件包括以下内容:

第一行:

WKY的水平值和老王的水平值。

数据保证WKY的水平值小于老王的水平值(哪怕它不现实),

且老王的水平值是WKY的水平值的整数倍。

第二行:

题目的总数m和知识点的总数n。

第三行:

n个整数。第i个整数表示 老王在做第i个知识点的题目所需的时间。

接下来有m行数每一行包括两个整数p,q。

p表示该题目所属的知识点,q表示该题目对应的奖励值。

最后一行是规定的时间。

输出格式:

输出文件只有一行,表示能到得到的最大奖励值。

输入输出样例

输入样例#1: 复制

1 2

6 4

1 2 3 4

1 5

2 6

3 3

4 8

3 3

4 5

20

01背包入门题吧
核心代码:dp[j]=max(dp[j], dp[j-w[i]]+c[i]);反正注意规范一下自己的代码
ac代码如下:
#include<cstdio>
#define MAXN int(5e3+5)
#define max(a, b) (a)>(b)?(a):(b)
int dp[MAXN];
int w[MAXN], c[MAXN];
int time[MAXN];
int main()
{
int n, m, a, b, x, v;
scanf("%d%d", &a, &b);
scanf("%d%d", &n, &m);
for (int i = ; i <= m; ++i)
{
scanf("%d", &time[i]);
time[i] *= (b / a);
}
for (int i = ; i <= n; ++i)
{
scanf("%d%d", &x, &c[i]);
w[i] = time[x];
}
scanf("%d", &v);
for (int i = ; i <= n; ++i)
for (int j = v; j >=w[i]; --j)
dp[j] = max(dp[j], dp[j - w[i]] + c[i]); printf("%d\n", dp[v]);
}

P2430 严酷的训练 题解的更多相关文章

  1. luogu P2430 严酷的训练 题解

    By:Soroak 知识点:DP 思路:就是一道简单的DP 一开始我想用二维数组做 做着做着发现,没有那么难啊啊啊 完全可以用一维数组来做 我们先开两个一维数组来存每个题目的时间 一个是老王的时间,另 ...

  2. 洛谷 P2430 严酷的训练

    P2430 严酷的训练 题目背景 Lj的朋友WKY是一名神奇的少年,在同龄人之中有着极高的地位... 题目描述 他的老师老王对他的程序水平赞叹不已,于是下决心培养这名小子. 老王的训练方式很奇怪,他会 ...

  3. 【洛谷 P2430 严酷的训练】

    题目背景 Lj的朋友WKY是一名神奇的少年,在同龄人之中有着极高的地位... 题目描述 他的老师老王对他的程序水平赞叹不已,于是下决心培养这名小子. 老王的训练方式很奇怪,他会一口气让WKY做很多道题 ...

  4. P2430严酷的训练

    传送 这个题的题干很长,长到令人恶心 这个题的p乍一看好像没有卵用,但其实他很有用(废话).这里的“费用”不再是tw[i](wky做第i道题的时间),而是tw[p[i]](wky做第i道题所对应的知识 ...

  5. 洛谷P2430 严酷的训练

    第一眼看这道题...啊哈,啥??? 仔细看一看,发现:诶, 这不是01背包吗? 两人水平值的比值*老王做题用时 可以算出WKY做每道题的用时. 那么每道题的p就可以转换成费用c[i], 价值q就是w[ ...

  6. 【洛谷p2430】严酷的训练

    (这个题有一个很神奇的地方) 严酷的训练[传送门] 算法标签(显然01背包了最近一直在练) (他居然没写……) 这个题啊,试了好几遍没a 最后发现在第二层循环的时候应该是j>=rqyt[p[i] ...

  7. AC日记——严酷的训练 洛谷 P2430

    严酷的训练 思路: 背包: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 5005 int n,m,bi[m ...

  8. 2018天梯赛第一次训练题解和ac代码

    随着评讲的进行代码和题解会逐步放上来 2018天梯赛第一次训练 1001 : 进制转换 Time Limit(Common/Java):1000MS/10000MS     Memory Limit: ...

  9. 2018省赛赛第一次训练题解和ac代码

    第一次就去拉了点思维很神奇的CF题目 2018省赛赛第一次训练 # Origin Title     A CodeForces 607A Chain Reaction     B CodeForces ...

随机推荐

  1. [POJ 2689] Prime Distance

    Description 给定两个整数 \(L,R\;(1\leq L\leq R\leq 2^{31},R-L\leq 10^6)\) ,求闭区间 \([L,R]\) 中相邻两个数最大的差是多少,输出 ...

  2. VirtualBox centos7扩容

    有时候扩容还真不如重新建立一个大硬盘的系统,但是如果你安装了好多东西的话,那还是来扩容一下吧. 查看磁盘格式           在virtualBox中右键点击虚拟机->设置->存储,如 ...

  3. [转]docker-compose教程(安装,使用, 快速入门)

    本文转自:https://blog.csdn.net/pushiqiang/article/details/78682323 教程基于ubuntu下最新的compose版本3 参考: https:// ...

  4. npm包

    https://www.cnblogs.com/xinxingyu/p/5736244.html     node - glob模块讲解 https://github.com/isaacs/node- ...

  5. 8.并发容器ConcurrentHashMap#put方法解析

    jdk1.7.0_79 HashMap可以说是每个Java程序员用的最多的数据结构之一了,无处不见它的身影.关于HashMap,通常也能说出它不是线程安全的.这篇文章要提到的是在多线程并发环境下的Ha ...

  6. Java使用foreach语句对数组成员遍历输出

    /** * 本程序使用foreach语句对数组成员进行遍历输出 * @author Lei * @version 2018-7-23 */ public class ForeachDemo { pub ...

  7. Angular6封装LED时钟数字组件

    一.运行截图 截图1: 截图2: 二.代码 html代码: <div class="time" > <ng-container #container> &l ...

  8. [总结]jQuery之选择器集合

    jQuery 的选择器可谓之强大无比,常用的元素查找方法: $("#myELement") //选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是my ...

  9. ionic 项目中ios上遇到的软键盘输入法自动弹出的问题

    一.  安装插件 cordova plugin add ionic-plugin-keyboard 二. 软键盘显示监听 window.addEventListener('native.keyboar ...

  10. Linux 学习笔记之超详细基础linux命令 Part 6

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 5----------------- ...