By:Soroak

知识点:DP

思路:就是一道简单的DP
一开始我想用二维数组做
做着做着发现,没有那么难啊啊啊
完全可以用一维数组来做

我们先开两个一维数组来存每个题目的时间
一个是老王的时间,另一个是wky的时间,
(其实完全可以用一个一位数组写的。。)

再开一个结构体,来存每一个题目的知识点种类和做出该题目的价值

然后双重循环,第一层从1到m,枚举所有的题目
第二层从tim到num[timu[i].kind],表示从tim时间开始,枚举到当前题目要花费的时间为止
Q:那为什么不直接枚举到1呢??
A:当j<num[timu[i].kind]时,枚举的时间小于该题目用的时间,那么数组的下标会成为负数,而且你怎么可能时间到了还在做题呢?

然后,就可以得到一个很简单的DP方程式: dp[j]=max(dp[j],dp[j-num[timu[i].kind]]+timu[i].value);

/*
知识点:DP 思路:就是一道简单的DP
一开始我想用二维数组做
做着做着发现,没有那么难啊啊啊
完全可以用一维数组来做 我们先开两个数组来存每个题目的时间
一个是老王的时间,另一个是wky的时间,
(其实完全可以用一个一位数组写的。。) 然后双重循环,第一层从1到m,枚举所有的题目
第二层从tim到num[timu[i].kind],表示从tim时间开始,枚举到当前题目要花费的时间为止
Q:那为什么不直接枚举到1呢??
A:当j<num[timu[i].kind]时,枚举的时间小于该题目用的时间,那么数组的下标会成为负数,而且你怎么可能时间到了还在做题呢? 然后,就可以得到一个很简单的DP方程式: dp[j]=max(dp[j],dp[j-num[timu[i].kind]]+timu[i].value); */
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define int long long int using namespace std; int wky,laowang;
int m,n; int a[];//老王在做第i种题目时所花费的时间
int dp[];
int num[];//wky在做第i种知识点的题目时要花费的时间 struct node
{
int value;
int kind;
}timu[]; int tim; inline int cmp(node a,node b)
{
return a.value>b.value;
} inline void init()
{
cin>>wky>>laowang;
cin>>m>>n; for(int i=;i<=n;i++)
{
cin>>a[i];
num[i]=a[i]*(laowang/wky);
} for(int i=;i<=m;i++)
{
cin>>timu[i].kind;
cin>>timu[i].value;
} cin>>tim;
} inline void calc()
{
for(int i=;i<=m;i++)
{
for(int j=tim;j>=num[timu[i].kind];j--)
{
dp[j]=max(dp[j],dp[j-num[timu[i].kind]]+timu[i].value);
}
}
} signed main()
{
init();
sort(timu+,timu+m+,cmp);//有没有一个样
calc();
cout<<dp[tim]<<endl;
return ;
}

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

  1. P2430 严酷的训练 题解

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

  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. luogu P1126 机器人搬重物 题解

    luogu P1126 机器人搬重物 题解 题目描述 机器人移动学会(\(RMI\))现在正尝试用机器人搬运物品.机器人的形状是一个直径\(1.6\)米的球.在试验阶段,机器人被用于在一个储藏室中搬运 ...

  9. 【luogu P2491 [SDOI2011]消防】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2491 题外话: OI一共只有三种题--会的题,不会的题,二分题. 题解: step 1 求树的直径,把树的直 ...

随机推荐

  1. .tar.gz 文件和 .tar.xz 文件的区别

    tar.gz and tar.xz both are compressed tar-files, but with different compression methods. tar.gz is c ...

  2. [转帖]linux lsof 用法简介

    linux lsof 用法简介 https://www.cnblogs.com/saneri/p/5333333.html 1.简介: lsof(list open files)是一个列出当前系统打开 ...

  3. 更新element-ui版本

    1. 卸载当前版本 npm uninstall element-ui 2. 安装指定版本 npm -S

  4. Spring Boot + Vue 前后端分离开发,权限管理的一点思路

    在传统的前后端不分的开发中,权限管理主要通过过滤器或者拦截器来进行(权限管理框架本身也是通过过滤器来实现功能),如果用户不具备某一个角色或者某一个权限,则无法访问某一个页面. 但是在前后端分离中,页面 ...

  5. WebStrom安装Markdown插件

    安装步骤 File→Settings→Plugins→关键字搜索markdown→选择Markdown Navigator→点击Install→出现下载弹窗,等待下载完毕→重启Webstrom 效果预 ...

  6. nginx报错111: Connection refused

    最近遇到了nginx疯狂抛错,access.log一天一共5W多条,但error.log中有大概9K多条,基本都是111: Connection refused,这到底是为什么呢? 从日志看起 我们还 ...

  7. axios FastMock 跨域 代理

    发送请求: 实现:发送请求,获取数据. 原本想自己写服务,后来无意间找到FastMock这个东东,于是就有了下文... 首先我安装了axios,在fastmock注册好了并创建了一个接口,怎么搞自行百 ...

  8. .net core 读取appsettings.json乱码

    .net core 读取配置文件乱码:vs2019读取appsettings.json乱码问题; .net core 读取appsettings.json乱码问题;用notepad++或者其他编辑器打 ...

  9. 1-RocketMq 学习 中文文档(一)

    原文:https://blog.csdn.net/weixin_40533111/article/details/84451096 1.基本概念及优势 rocketmq是一个基于发布订阅队列模型的消息 ...

  10. Flask基于websocket的简单聊天室

    1.安装gevent-websocket pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ gevent-websocket 2.cha ...