Bone Collector II(hdu 2639)
题意:求01背包的第k最优值
输入:第一行为T,下面是T组数据,每组数据有n,m,k 代表n件物品,m容量,和题目要求的k,下一行是n个物品的价值,再一行是n个物品的体积
输出:T行答案
/*
类似于归并排序中合并的做法,对于f[i][j]的k个最优值,从f[i-1][j]和f[i-1][j-w[i]]+v[i]
的k个最优值中选出最优的k个放入
*/
#include<cstdio>
#include<iostream>
#include<cstring>
#define N 110
#define M 1010
using namespace std;
int f[M][N/],v[N],w[N],x[M],y[M],n,m,k;
int read()
{
char c=getchar();int num=;
while(c<''||c>''){c=getchar();}
while(c>=''&&c<=''){num=num*+c-'';c=getchar();}
return num;
}
void work()
{
n=read();m=read();k=read();
for(int i=;i<=n;i++)
v[i]=read();
for(int i=;i<=n;i++)
w[i]=read();
for(int i=;i<=n;i++)
for(int j=m;j>=w[i];j--)
{
for(int l=;l<=k;l++)
x[l]=f[j][l],y[l]=f[j-w[i]][l]+v[i];
int s1=,s2=,s3=;
x[k+]=y[k+]=-;
while((x[s1]!=-||y[s2]!=-)&&s3<=k)
{
if(x[s1]>y[s2])f[j][s3]=x[s1++];
else f[j][s3]=y[s2++];
if(f[j][s3]!=f[j][s3-])s3++;
}
}
printf("%d\n",f[m][k]);
}
int main()
{
int T;scanf("%d",&T);
while(T--)
{
memset(f,,sizeof(f));
work();
}
return ;
}
Bone Collector II(hdu 2639)的更多相关文章
- (01背包 第k优解) Bone Collector II(hdu 2639)
http://acm.hdu.edu.cn/showproblem.php?pid=2639 Problem Description The title of this problem i ...
- Bone Collector II(HDU 2639 DP)
Bone Collector II Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- HDU--2639 Bone Collector II(01背包)
题目http://acm.hdu.edu.cn/showproblem.php?pid=2639 分析:这是求第K大的01背包问题,很经典.dp[j][k]为背包里面装j容量时候的第K大的价值. 从普 ...
- hdu 2639 Bone Collector II(01背包 第K大价值)
Bone Collector II Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- HDU 3639 Bone Collector II(01背包第K优解)
Bone Collector II Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- HDU 2639 Bone Collector II (dp)
题目链接 Problem Description The title of this problem is familiar,isn't it?yeah,if you had took part in ...
- hdu 2639 Bone Collector II (01背包,求第k优解)
这题和典型的01背包求最优解不同,是要求第k优解,所以,最直观的想法就是在01背包的基础上再增加一维表示第k大时的价值.具体思路见下面的参考链接,说的很详细 参考连接:http://laiba2004 ...
- [HDOJ2639]Bone Collector II(第k优01背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2639 题意:求01背包的第k优解 dp(i, j)表示容量为j时的i优解 对于第二维的操作和01背包几 ...
- Bone Collector II(01背包kth)
The title of this problem is familiar,isn't it?yeah,if you had took part in the "Rookie Cup&quo ...
随机推荐
- Spring MVC 结合Velocity视图出现中文乱码的解决方案
编码问题一直是个很令人头疼的事,这几天搭了一个Spring MVC+VTL的web框架,发现中文乱码了,这里记录一种解决乱码的方案. 开发环境为eclipse,首先,检查Window->pref ...
- ambari-server启动WARN qtp-ambari-client-87] ServletHandler: 563 /api/v1/stacks/HDP/versions/2.4/recommendations java.lang.NullPointerException报错解决办法(图文详解)
问题详情 来源是,我在Ambari集群里,安装Hue. 给Ambari集群里安装可视化分析利器工具Hue步骤(图文详解 所遇到的这个问题. 然后,去ambari-server的log日志,查看,如 ...
- 微软最新的Web服务器Katana发布了版本3
Katana 项目入门 Howard Dierking 当 ASP.NET 首次在 2002 年发布时,时代有所不同. 那时,Internet 仍处于起步阶段,大约有 5.69 亿用户,每个用户平均每 ...
- AJPFX总结FileWriter类的write方法
FileWriter从类OutputStreamWriter继承的 1.public void write(int c) throws IOException写入单个字符. ...
- AngularJS入门 & 分页 & CRUD示例
一.AngularJS 简介 AngularJS 诞生于2009年,由Misko Hevery 等人创建,后为Google所收购.是一款优秀的前端JS框架,已经被用于Google的多款产品当中. ...
- wordpress在撰写新文章界面的显示选项按钮点击无反应的解决办法
原文链接:wordpress在撰写新文章界面的显示选项按钮点击无反应的解决办法 最近升级wordpress之后,发现在文章编辑界面的添加新媒体和可视化按钮点击无反应,如下: 然后就在网上找解决办法, ...
- android ListView 分析(一)
需要了解的内容 1. listview中的getItemAtPosition与Adapter的getItem的position的区别 listView中的getItemAtPosit ...
- QT入门学习2
QT获取窗口几何布局有2类函数: 1.包含框架:x().y().frameGemetry().pos().move()... 2.不包含框架:geometry().width().height().w ...
- C# 移动开发 MasterDetailPage 侧滑
先上结果图: 虽然是跨平台的安卓和ios都可以运行,由于目前只配置了安卓的,ios的先不理. 我们先新建一个项目,跨平台应用: 可移植类库: 可移植项目右键添加新建项 选 Forms MasterDe ...
- 批处理 reg add /?
C:\Users\Administrator>reg add /? REG ADD KeyName [/v ValueName | /ve] [/t Type] [/s Separator] [ ...