P1659 养猪

题目描述

你有一个猪圈,有N头猪,每天你最多可以杀一头猪卖钱,获益就是猪的体重。但是每过一天每头猪的体重都会下降P[i](当然,如果猪体重<=0了,自然获利为0),问K天内你的最大获利。

输入输出格式

输入格式:

第一行两个数N、K;

第二行N个数,表示猪的初始重量A[i];

第三行N个数表示P[i]。

【数据规模】

对于20%的数据,满足1≤N≤20;

对于100%的数据,满足1≤N≤1000,初始重量≤10^5.

输出格式:

一行一个数表示最大获利。

输入输出样例

输入样例#1:

2 2
10 10
1 2

输出样例#1:

19
//01背包问题,可以化为一维
#include<iostream>
#include<cstdio>
#include<algorithm>using namespace std;int n,k,d[1005],ans;
struct data{int w,p;
}pig[1005];bool cmp(data a,data b)
{    if(a.p==b.p)return a.w>b.w;return a.p>b.p;    }int main()
{scanf("%d%d",&n,&k);for(int i=1;i<=n;i++)scanf("%d",&pig[i].w);for(int i=1;i<=n;i++)scanf("%d",&pig[i].p);sort(pig+1,pig+1+n,cmp);//由于题的特殊性,需要先将猪按掉价速度排序,再dp for(int i=1;i<=n;i++)for(int j=max(k,i);j>=1;j--)//01背包从后往前 d[j]=max(d[j],d[j-1]+max(pig[i].w-pig[i].p*(j-1),0));//背包d[j]=max(d[j],d[j-v]+w)(v==1,w==max(pig[i].w-pig[i].p*(j-1),0))
            ans=d[k];for(int i=k;i>=1;i--)ans=max(ans,d[i]);//由于pig[i].w-pig[i].p*(j-1),j越小单个猪的贡献越大,并且已经按掉价速度排序,有时越靠前所得收益越大,需要扫一遍
        printf("%d\n",ans);//输出 return 0;
}

转载于:https://www.cnblogs.com/lyqlyq/p/7107330.html

luogu P1659 养猪 dp 好理解相关推荐

  1. 洛谷P1659 养猪

    洛谷P1659 养猪 1 #include <bits/stdc++.h> 2 #define For(i,j,k) for(int i=j;i<=k;i++) 3 using na ...

  2. flutter中 dp的理解

    flutter中 dp的理解 手机屏幕是由像素点组成的. 例:iPhone 6 Plus 采用标准的 1920×1080分辨率屏幕 就是高1920个像素点,宽1080个像素点 排列成的长方形 dpi为 ...

  3. HDU - 5965 扫雷(dp[好理解,但不那么优的题解])

    扫雷 Problem Description 扫雷游戏是晨晨和小璐特别喜欢的智力游戏,她俩最近沉迷其中无法自拔. 该游戏的界面是一个矩阵,矩阵中有些格子中有一个地雷,其余格子中没有地雷. 游戏中,格子 ...

  4. 动态规划DP算法理解

    1. DP算法定义: 每次决策依赖于当前状态,又随即引起状态的转移,多阶段最优化决策解决问题的过程就称为动态规划. 2. DP算法基本流程: 初始状态→│决策1│→│决策2│→-→│决策n│→结束状态 ...

  5. luogu P1659 [国家集训队]拉拉队排练

    唔....话说好久没有发布题解了(手痒痒了 首先特别鸣谢lykkk大佬今天下午教我Manacher算法,甚是感谢 为了体现学习成果,写一篇蒟蒻版的题解(大佬勿喷 言归正传 题面-->在这儿 首先 ...

  6. Luogu P4933 大师(dp)

    P4933 大师 题意 题目背景 建筑大师最近在跟着数学大师ljt12138学数学,今天他学了等差数列,ljt12138决定给他留一道练习题. 题目描述 ljt12138首先建了\(n\)个特斯拉电磁 ...

  7. Acwing 1081. 度的数量(以及本人对数位dp的浅薄理解)

    题意: 求给定区间 [X,Y] 中满足下列条件的整数个数:这个数恰好等于 K 个互不相等的 B 的整数次幂之和. 题解: 数位DP 技巧1:[X,Y]=>f(Y)-f(X-1) 技巧2:用树的方 ...

  8. 对状压dp的一点理解

    博主是初学者,以下仅代表个人观点,若有错误欢迎指出. 状压dp 此dp可以理解为最暴力的dp,因为他需要遍历每个状态,所以将会出现2^n的情况数量,所以明显的标志就是数据不能太多(好像是<=16 ...

  9. hdu1561 树形dp

    题意:       给你n个东西,每个东西有自己的价值,让你从里面最多取出m个物品,问最大的价值,有的物品有限制,就是必须先取出某个物品后才能取出这个物品. 思路:       树形dp,应该是树形的 ...

最新文章

  1. 如何在 Linux 中使用类似智能手机外观的 Conky 天气插件
  2. 【计算理论】不可判定性 ( 停机问题 | 图灵机语言是否空集问题 | 图灵机是否等价问题 | 是否存在自动机接受图灵机语言问题 | 莱斯定理 Rice‘s Theorem )
  3. python 百度百科 爬虫_爬虫爬取百度百科数据
  4. 【ES10(2019)】Object.fromEntries()
  5. 「装X指南」:手把手教你包装成程序员大佬
  6. JS 函数中的call,apply
  7. 知识管理java_java面试题 - 集合框架
  8. Something about TFS
  9. 一文看懂码灵半导体CFW32C7UL系列产品应用(八):扫码设备应用(上)
  10. 程序教程基础_电脑是个啥玩意
  11. 半监督学习:主动学习、纯半监督学习和直推学习区别和联系
  12. 怎样在线将图片转换成icon图标
  13. ASP.NET MVC中商品模块小样
  14. 微博上看到的,小白兔系列
  15. 定积分,二重积分,三重积分
  16. [blockchain-042]eos 硅谷ecs docer编译 mongo存储
  17. gogs mail 配置(邮件服务器使用自颁发证书)
  18. 轮廓图(Silhouette)
  19. windows下,查看apk的包名、以及查找appActivity(aapt命令)
  20. 电子管晶体管示波器电路图

热门文章

  1. socket的阻塞模式和非阻塞模式(send和recv函数在阻塞和非阻塞模式下的表现)
  2. 2020年周记(1/50)
  3. 2018--20179215--《文献管理与信息分析》第三讲 英文数据库资源的发展趋势和利用...
  4. laravel5.5中间件
  5. 四级菜单实现(Python)
  6. CentOS挂Windows的NFS备忘
  7. 运用Zabbix实现内网服务器状态及局域网状况监控(2) —— 环境配置
  8. 谈谈java中遍历Map的几种方法
  9. vue1升级到vue2的问题
  10. 树状数组成段更新模板