P2065 贪心的果农
P2065 贪心的果农
题目描述
果农的花园里种着N棵果树。收获的季节终于来到了,果农决定,在接下来的M天时间里完成自己的收获工作。他的收获方式极其暴力——他将会将某棵果树砍倒来获取上面的果实。然而如此暴力的果农体力也十分有限,他每天最多只能砍一棵果树。已经知道,对于第i棵果树,在第1天的时候上面已经有ai个果实,而接下来每一天(不包括第1天),它都会再长出bi个果实(0<=ai,bi<=104,ai,bi均为整数)。果农只能获得砍下来的果树上的果实,而砍下来的果树将不会再长果实。果农想知道,自己在M天后最多可以收获多少个果实。
输入输出格式
输入格式:
第1行包含两个整数N,M。
第2行N个数,用空格隔开,第i个数表示ai。
第3行N个数,用空格隔开,第i个数表示bi。
输出格式:
一个数,表示最多能获得到的果实。
输入输出样例
2 2
8 10
2 3
21
说明
数据规模
对于30%的数据,0<M,N<=30;
对于100%的数据,0<M,N<=1000;
数据保证答案小于等于231-1。
分析
dp[i]到第i天的最大收获,如果我们外层循环天数,内层枚举树,取最大值,那么上一天的最大值,可能已经用了第x棵树,当前在枚举x是不合理的,所以要外层循环树,内层循环天,表示这棵树在第几天砍掉。状态转移方程:
dp[j] = max(dp[j],dp[j-1]+f[i].a+f[i].b*(j-1));
code
#include<algorithm>
#include<cstdio>
using namespace std; struct MYSTRUCT{
int a,b;
bool operator < (const MYSTRUCT& c) const
{
if (b==c.b) return a < c.a;
return b < c.b;
}
}f[];
int dp[]; int main()
{
int n,m;
scanf("%d%d",&n,&m);
for (int i=; i<=n; ++i) scanf("%d",&f[i].a);
for (int i=; i<=n; ++i) scanf("%d",&f[i].b);
sort(f+,f+n+);
for (int i=; i<=n; ++i)
for (int j=m; j>=; --j)
dp[j] = max(dp[j],dp[j-]+f[i].a+f[i].b*(j-));
printf("%d",dp[m]);
return ;
}
P2065 贪心的果农的更多相关文章
- Luogu【P2065】贪心的果农(DP)
题目链接 几乎所有DP题目前本蒟蒻都没有思路.当然包括但不限于这道题.每次都是看了题解然后打的(等价于抄题解)很羞耻 这道题经思考发现,越靠前砍的果树长果子的能力一定越弱,如果长果子的能力一样弱就先把 ...
- 【tyvj】P2065 「Poetize10」封印一击(贪心+线段树/差分)
http://new.tyvj.cn/p/2065 我就不说我很sb的用线段树来维护值...... 本机自测的时候想了老半天没想出怎么维护点在所有区间被多少区间包含的方法.最后一小时才想出来线段树(果 ...
- BZOJ 1692: [Usaco2007 Dec]队列变换 [后缀数组 贪心]
1692: [Usaco2007 Dec]队列变换 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1383 Solved: 582[Submit][St ...
- HDOJ 1051. Wooden Sticks 贪心 结构体排序
Wooden Sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- BZOJ 1691: [Usaco2007 Dec]挑剔的美食家 [treap 贪心]
1691: [Usaco2007 Dec]挑剔的美食家 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 786 Solved: 391[Submit][S ...
- 【Codeforces 738D】Sea Battle(贪心)
http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...
- 【BZOJ-4245】OR-XOR 按位贪心
4245: [ONTAK2015]OR-XOR Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 486 Solved: 266[Submit][Sta ...
- code vs 1098 均分纸牌(贪心)
1098 均分纸牌 2002年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 有 N 堆纸牌 ...
随机推荐
- JVM虚拟机 - Class类文件结构
概述 Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎都是程序运行的必要数据 ...
- 从零开始的全栈工程师——js篇2.3
自加和自减 =赋值运算 他的顺序是从右往左 从后往前 var a=12; 声明一个变量并将12赋值给aa=a+2; 将a+2赋值给a简写a+=3; a=a+3a+=1; a++ 在自己原有的基础上加1 ...
- es6-Iterator与for...of
Iterator(遍历器)的概念 JavaScript原有的表示“集合”的数据结构,主要是数组(Array)和对象(Object),ES6又添加了Map和Set.这样就有了四种数据集合,用户还可以组合 ...
- Table中采用JQuery slideToggle效果的问题
需求:用JQuery实现,点击最上边的粗加号时,对所有含有子表的Tr进行展开,点击 + 号时,只对当前Tr的下一个tr内容的动态隐藏和显示: 问题:JQuery的slideToggle() slide ...
- Consider everything deeply but still remain fearless.
Consider everything deeply but still remain fearless.愿你能深思熟虑,但始终无所畏惧.
- linux 命令——41 ps(转)
Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...
- 通过cmd查看环境变量名对应的环境变量值
在VS环境中通常要添加路径,不过基本都是按照往上提供的方法添加变量名形如:$(VC_IncludePath),但是如何通过cmd命令找到真正的路径呢 未完待续……
- axiospost请求向后端提交数据
Axios向后端提交数据容易接收不到原因是传参方式是request payload,参数格式是json,而并非用的是form传参,所以在后台用接收form数据的方式接收参数就接收不到了.post表单请 ...
- Java异常处理的9个最佳实践
无论你是新手还是资深程序员,复习下异常处理的实践总是一件好事,因为这能确保你与你的团队在遇到问题时能够处理得了它. 在 Java 中处理异常并不是一件易事.新手觉得处理异常难以理解,甚至是资深开发者也 ...
- 海量数据GPS定位数据库表设计
在开发工业系统的数据采集功能相关的系统时,由于数据都是定时上传的,如每20秒上传一次的时间序列数据,这些数据在经过处理和计算后,变成了与时间轴有关的历史数据(与股票数据相似,如下图的车辆行驶过程中的油 ...