jzoj 4710. 【NOIP2016提高A组模拟8.17】Value 贪心+动态规划
来源:互联网 发布:蔡仕伟淘宝 编辑:程序博客网 时间:2024/05/18 01:27
题意:给出n(n<=5000)件物品,每件物品有一个价值v[i]和一个代价w[i],若选了第i件物品则其余物品的价值都要减去w[i]。现在可以以任意顺序选择任意数量的物品,求最大的总价值。
分析:我们贪心地去想,若现在我们确定了要选的s件物品,那么我们肯定是按w[i]从小到大来进行选择。那么我们就可以把每件物品按w[i]从大到小进行排序,设f[i,j]为前i件物品中选了j件的最大价值是多少
f[i,j]=max(f[i-1,j],f[i-1,j-1]+v[i]-w[i]*(j-1))
代码:
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#define N 5100#define inf 1e+7using namespace std;int n,f[N];struct data{int v,w;}a[N];bool cmp(data a,data b){return a.w>b.w;}int main(){scanf("%d",&n);for (int i=1;i<=n;i++)scanf("%d%d",&a[i].v,&a[i].w);sort(a+1,a+n+1,cmp);int ans=0;for (int i=1;i<=n;i++)for (int j=i;j>=1;j--){f[j]=max(f[j],f[j-1]+a[i].v-a[i].w*(j-1));ans=max(ans,f[j]);}printf("%d",ans);return 0;}
0 1
- jzoj 4710. 【NOIP2016提高A组模拟8.17】Value 贪心+动态规划
- JZOJ.4710【NOIP2016提高A组模拟8.17】Value
- JZOJ 4710 Value【NOIP2016提高A组模拟8.17】
- [JZOJ 4710]【NOIP2016提高A组模拟8.17】Value
- jzoj 4820. 【NOIP2016提高A组模拟10.15】最大化 动态规划+单调队列+二分
- Value【NOIP2016提高A组模拟8.17】
- 【NOIP2016提高A组模拟8.17】Value
- 【NOIP2016提高A组模拟8.17】Value
- JZOJ 4709 Matrix【NOIP2016提高A组模拟8.17】
- [Jzoj 4709]. 【NOIP2016提高A组模拟8.17】Matrix
- JZOJ.4709【NOIP2016提高A组模拟8.17】Matrix
- JZOJ 4711. 【NOIP2016提高A组模拟8.17】Binary
- JZOJ 4711 Binary【NOIP2016提高A组模拟8.17】
- JZOJ4710. 【NOIP2016提高A组模拟8.17】Value
- 【JZOJ4710】【NOIP2016提高A组模拟8.17】Value
- JZOJ 4628 立方体【NOIP2016提高A组模拟7.15】
- JZOJ 4629 修路【NOIP2016提高A组模拟7.15】
- JZOJ 4630 计数【NOIP2016提高A组模拟7.15】
- JZOJ 4700 简单DP
- Android无线调试程序
- HDU1571
- 分布式缓存技术redis学习系列(三)——redis高级应用(主从、事务与锁、持久化)
- listview 中出现的ArrayIndexOutOfBoundsException
- jzoj 4710. 【NOIP2016提高A组模拟8.17】Value 贪心+动态规划
- iOS控件:状态栏
- leetcode-java-110. Balanced Binary Tree
- 设计模式-状态模式
- 验证数学黑洞 ,用户输入一个四位数,输出变换到6174的过程
- 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)
- LA 7457 Discrete Logarithm Problem(shank的大步小布算法)
- velociyt判断变量是否为null
- Linux修改默认系统启动级别为命令行模式