HDU 2639 第K大背包问题
//状态方程和01背包类似,dp[j][k]表示背包容量为j的第k大背包的值。。。。。。。。。。 //应当注意的是此时dp[j][1.....k]应当是递减的。。。。。。。。。。。。。。。。。。。。 #include<stdio.h> #include<string.h>
#define Max(x,y) (x>y?x:y)
#define max_v 1000+10
#define max_k 30+5
#define max_n 100+5 int dp[max_v][max_k],w[max_n],c[max_n];
int q1[max_k],q2[max_k]; int main(){
int t;
scanf("%d",&t);
while(t--){
int n,v,k;
scanf("%d%d%d",&n,&v,&k);
memset(dp,,sizeof(dp));
for(int i=;i<=n;i++){
scanf("%d",&w[i]);
}
for(int i=;i<=n;i++){
scanf("%d",&c[i]);
}
for(int i=;i<=n;i++){
for(int j=v;j>=c[i];j--){
for(int kk=;kk<=k;kk++){
q1[kk]=dp[j-c[i]][kk]+w[i];
q2[kk]=dp[j][kk];
}
q1[k+]=q2[k+]=-;
int h=,h1=,h2=;
while(h<=k&&(h1<=k||h2<=k)){
if(q1[h1]>q2[h2]){
dp[j][h]=q1[h1];
h1++;
}
//else if(q1[h1]<q2[h2]){
else{
dp[j][h]=q2[h2];
h2++;
}
if(dp[j][h]!=dp[j][h-]){
h++;
}
}
}
}
// for(int i=1;i<=k;i++){
// printf("%d ",dp[v][i]);
// }
// puts("");
printf("%d\n",dp[v][k]);
}
}
HDU 2639 第K大背包问题的更多相关文章
- hdu 2639 第k大01背包
求每个状态里的k优解,然后合并 /* HDU 2639 求01背包的第k大解. 合并两个有序序列 */ #include<stdio.h> #include<iostream> ...
- HDU 2639 Bone Collector II(01背包变形【第K大最优解】)
Bone Collector II Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- (01背包 第k优解) Bone Collector II(hdu 2639)
http://acm.hdu.edu.cn/showproblem.php?pid=2639 Problem Description The title of this problem i ...
- HDU 2639(01背包求第K大值)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2639 Bone Collector II Time Limit: 5000/2000 MS (Jav ...
- HDU 2639(01背包第K大)
http://acm.hdu.edu.cn/showproblem.php?pid=2639 http://blog.csdn.net/lulipeng_cpp/article/details/758 ...
- HDU 2639 背包第k优解
Bone Collector II Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- HDU 2639 01背包求第k大
Bone Collector II Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- HDU 2639 Bone Collector II【01背包 + 第K大价值】
The title of this problem is familiar,isn't it?yeah,if you had took part in the "Rookie Cup&quo ...
- hdu 2639 Bone Collector II(01背包 第K大价值)
Bone Collector II Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
随机推荐
- 《DSP using MATLAB》Problem 7.38
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...
- SpringBoot使用注解方式整合Redis
1.首先导入使用Maven导入jar包 <dependency> <groupId>org.springframework.boot</groupId> <a ...
- java调js基础
public static void main(String[] args)throws Exception { ScriptEngine se = new ScriptEngineManager() ...
- python 之 字符串处理
分割字符串 根据某个分割符分割 >>> a = '1,2,3,4' >>> a.split(',') ['] 根据多个分隔符分割 >>> line ...
- Java超简明入门学习笔记(零)
Java编程思想第4版学习笔记(零) 前言 这个笔记本主要记录了我在学习Java编程思想(第4版,中文版)的过程中遇到的重难点及其分析.主要参考了C++11版本的C++语言,对比了它 ...
- 06-6-es6模板字符串
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Qt源码下载
这是官方下载地址:http://qt.nokia.com/downloads 点击右下角的 ftp.qt.nokia.com - Archive You can find our archive of ...
- .net 设置默认首页
解决方案一:设置默认首页 在 Web.config 文件中,加上红色字体间的内容 <configuration> <system.web> <compilation de ...
- js实现事件监听与阻止监听传播
监听事件: 使用attachEvent(用于IE)和addEventListener(用于谷歌.火狐)时则可以实现多个事件处理函数的调用 1.下面都是dom对象的方法,可以实现一种事件绑定多个事件处理 ...
- HZOI20190823 C magic
数论板子合集... 我们要求: $N^{\sum\limits_{i=1}^{N}[gcd(i,N)==1]C_{n}^{i}}mod p$ 其中p为54184622,是个合数 指数是组合数,不能用快 ...