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。

输出格式:

一个数,表示最多能获得到的果实。

输入输出样例

输入样例#1:

2 2
8 10
2 3
输出样例#1:

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 贪心的果农的更多相关文章

  1. Luogu【P2065】贪心的果农(DP)

    题目链接 几乎所有DP题目前本蒟蒻都没有思路.当然包括但不限于这道题.每次都是看了题解然后打的(等价于抄题解)很羞耻 这道题经思考发现,越靠前砍的果树长果子的能力一定越弱,如果长果子的能力一样弱就先把 ...

  2. 【tyvj】P2065 「Poetize10」封印一击(贪心+线段树/差分)

    http://new.tyvj.cn/p/2065 我就不说我很sb的用线段树来维护值...... 本机自测的时候想了老半天没想出怎么维护点在所有区间被多少区间包含的方法.最后一小时才想出来线段树(果 ...

  3. BZOJ 1692: [Usaco2007 Dec]队列变换 [后缀数组 贪心]

    1692: [Usaco2007 Dec]队列变换 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1383  Solved: 582[Submit][St ...

  4. HDOJ 1051. Wooden Sticks 贪心 结构体排序

    Wooden Sticks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  5. HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  6. BZOJ 1691: [Usaco2007 Dec]挑剔的美食家 [treap 贪心]

    1691: [Usaco2007 Dec]挑剔的美食家 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 786  Solved: 391[Submit][S ...

  7. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  8. 【BZOJ-4245】OR-XOR 按位贪心

    4245: [ONTAK2015]OR-XOR Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 486  Solved: 266[Submit][Sta ...

  9. code vs 1098 均分纸牌(贪心)

    1098 均分纸牌 2002年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解   题目描述 Description 有 N 堆纸牌 ...

随机推荐

  1. 360 so动态脱壳

    环境及工具 手机    : 中兴 U887 系统版本:   Android 2.3.5 工具    :   IDA pro 6.6 .0101Editor 版权声明:未经许可,随便转载 目前so加壳有 ...

  2. spring的struts简单介绍

    之前一段时间学习了springmvc+mybatis+spring框架,突然对之前的struts东西有点陌生, 所以这里简单记录下温故而知新的东西吧. 1.  首先建立一个Dynamic Web Pr ...

  3. 《Unity預計算即時GI》笔记:三、Clusters和总结

    Clusters 叢集,透過修改叢集(Clusters)也是一個降低Unity預計算流程所需要執行的工作數量的好方法.降低叢集數量也能提高執行時的效能. 當採用PRGI來計算場景光照時,Unity會簡 ...

  4. 大数四则运算java(转)

    // 大数的四则运算 #include <iostream> #include <string> #include <algorithm> using namesp ...

  5. 新增自定义聚合函数StrJoin

    1.添加程序集Microsoft.SqlServer.Types CREATE ASSEMBLY [Microsoft.SqlServer.Types] AUTHORIZATION [sys] FRO ...

  6. thinkphp 3.2.3版本学习笔记

    2.开启调试模式,有什么作用?(默认关闭,在ThinkPHP.php 33行左右) (1)非法调用的时候,有详细的报错信息,便于调试 (2)APP_DEBUG为true并且缓存文件存在,走缓存文件,否 ...

  7. 定义多个属性 Object.defineProperties()

    var book = {} Object.defineProperties(book,{ _year:{ value:2004 }, editable:{ value:1 }, year:{ get: ...

  8. URL Schemes 不能识别和不能跳转的原因

    在app跳转的过程中 需要设置url schemes后,但是设置完后,却不能识别, (测试方式:URL scheme + ://)在浏览器中打开,如果能打开app,就是能跳转 今天遇到了一个坑爹的问题 ...

  9. python读取excel中的数据

    import numpy as np import matplotlib.pyplot as plt import pandas as pd #df = pd.read_excel('/Users/N ...

  10. pytho线程信号量

    pytho线程信号量 import threading,time def going(num,sleep_time): semaphore.acquire()#启动允许执行 print("g ...