CodeForces 366C Dima and Salad
题意::n个物品,k为倍数。每个物品有两个属性(ai和bi),求在满足所取物品的a属性和是b属性和的k倍的前提下,问a属性的最大值是多少,具体看样例解释,很清楚。
思路:这个题真的是学到了, 对于公式进行变换,然后转化为一部分正数和一部分负数,然后分别求背包,,对于背包,之前一直有一个误区。正确的应该是对于dp[i[代表i体积全部装满所代表的最大价值,因为他可以从背包的转移方程中的出dp[i]=max(dp[i],dp[i-c[i]]+a[i]);这个方程中指出,目前的答案是由减去体积的地方转移来的,而01背包是倒着进行计算,所以的到满体积时的价值
代码:
#include <bits/stdc++.h> using namespace std; const int maxn=105; int n,k,a[maxn],b[maxn],c[maxn],dp[10005],pp[10006];int main() {while(~scanf("%d%d",&n,&k)){memset(dp,-0x3f,sizeof(dp));memset(pp,-0x3f,sizeof(pp)); // memset(c,0,sizeof(c));dp[0]=pp[0]=0;for(int i=0;i<n;i++){scanf("%d",&a[i]);}for(int i=0;i<n;i++){scanf("%d",&b[i]);}for(int i=0;i<n;i++){c[i]=a[i]-k*b[i];}for(int i=0;i<n;i++){if(c[i]>=0){for(int j=10000;j>=c[i];j--){dp[j]=max(dp[j],dp[j-c[i]]+a[i]);}}}for(int i=0;i<n;i++){if(c[i]<0){c[i]=-c[i];for(int j=10000;j>=c[i];j--){pp[j]=max(pp[j],pp[j-c[i]]+a[i]);}}}int ans=-1;for(int i=0;i<=10000;i++){if(dp[i]==0&&pp[i]==0)continue;else ans=max(ans,dp[i]+pp[i]);}printf("%d\n",ans);}return 0; }
转载于:https://www.cnblogs.com/lalalatianlalu/p/8450528.html
CodeForces 366C Dima and Salad相关推荐
- CodeForces - 366C Dima and Salad
Dima and Salad 题 意 :有n个物品,价值为val[i],重量为cost[i],问最后背包中物品价值和比重量和为k的最大价值. 数据范围: 1<=n<=100 1<=k ...
- CodeForces 366C Dima and Salad (背包dp)
题意:给出n件物品,每件物品都有a.b两个值,从中取几件使得其中a值总和最大,并且a的和等于k倍的b的和. The first line of the input contains two integ ...
- CodeForces - 366C Dima and Salad (01背包)
题意:n件东西,有属性a和属性b.要选取若干件东西,使得\(\frac{\sum a_j}{\sum b_j} = k\).在这个条件下,问\(\sum a_j\)最大是多少. 分析:可以将其转化为0 ...
- codeforces 366C Dima and Salad (01背包)
题意: 给出n个水果,每个水果都有两种性质ai,bi,要保证要保证这个的前提下,ai的和要最大,求出这样最大的ai和. 题解: 01背包,背包写错了,一维老是出错,汗!二维背包过之.这里要装换下,吧a ...
- Codefroces 366 C Dima and Salad(dp)
Dima and Salad 题意:一共有n种水果,每种水果都有一个ai, bi,现求一个最大的ai总和,使得ai之和/对应的bi之和的值等于K. 题解:将bi转换成偏移量,只要偏移到起点位置,就代表 ...
- CODEFORCES 272C Dima and Staircase 细节理解题+简单技巧
传送门:http://codeforces.com/problemset/problem/272/C C. Dima and Staircase time limit per test 2 secon ...
- [codeforces366C]Dima and Salad
time limit per test : 1 second memory limit per test : 256 megabytes Dima, Inna and Seryozha have ga ...
- codeforces 400D Dima and Bacteria 并查集+floyd
题目链接:http://codeforces.com/problemset/problem/400/D 题目大意: 给定n个集合,m步操作,k个种类的细菌, 第二行给出k个数表示连续的xi个数属于i集 ...
- Codeforces - 272C Dima and Staircase(思维)
题目链接---- Dima's got a staircase that consists of n stairs. The first stair is at height a1, the seco ...
- CodeForces - 272C Dima and Staircase (线段树区间更新)
题意: 见以下样例,给出 5 个区间,每个区间的高度已知.一共 4 次操作.每次操作都是从最左边开始向下垒一个宽为 w 高为h 的木块,过程见下图. 问每次垒木块的高度是多少? Input 5 1 2 ...
最新文章
- pandas使用iloc函数基于dataframe数据列的索引抽取单列或者多列数据、其中多列索引需要嵌入在列表方括号[]中、或使用:符号形成起始和终止范围索引
- 利用DHCP,http,tftp,pxe实现批量自动化部署系统
- vscode代码运行时间工具_10款实用的VSCode插件提升你的编辑体验 | 第98期
- junit注释_通过此注释改善您的JUnit体验
- php加mySQL制作网络硬盘_PHP实现的简单网络硬盘
- Linux一定需要文件系统吗?
- Spring Boot使用@Async实现异步调用:ThreadPoolTaskScheduler线程池的优雅关闭
- 【Elasticsearch】索引 强制合并 缓存 refresh flush 等操作
- 【转载】 MySQL之用户资源限制
- [转帖]中美高速公路等车辆收费有何异同?
- 为什么分布式数据库中不使用uuid作为主键?
- 网络速度在线测试软件,在线网速测试(局域网速度测试工具)
- R语言和Python交互
- Android开发之各种好看的背景颜色
- 颜色模型和颜色应用---YIQ颜色模型
- api接口—闲鱼搜索的数据
- 控制反转思想的理解实例
- PMBOK(第六版) PMP笔记——《十三》第十三章(项目干系人管理)
- 用Facebook做广告和营销,你需要注意哪些问题?
- 使用layui框架迅速搭建后台管理页面