求每個狀態裡的k優解,然後合併
/*hdu 2639
求01揹包的第k大解。
合併兩個有序序列
*/#include
#include
#include
#include
using
namespace
std;
const
int maxn=110
;int dp[1010][50];//
dp[i][j]表示容量為i,第j大的值
intvalue[maxn];
intweight[maxn];
int a[50
];int b[50
];int
n,v,k;
void
dp()
intx,y,z;
x=y=z=1
; a[k+1]=b[k+1]=-1;//
這個一定要
while(z<=k&&(x<=k||y<=k))//
合併兩個已經排好序的序列
}}int
main()
return0;
}
hdu 2639 第k小的01揹包
題意 第k小的01揹包,重複的選項算乙個 我們年紀一共10個班,如果我想知道年紀第一,我需要知道每個班級的第一名,一比較,那麼我就知道年紀第一是誰了 如果我要知道年紀前十名,那麼,我只要知道每個班的前10名,那麼我比較之後就知道了年級的前十名 dp i j 表示體積為i時,價值為第j大的價值,每次選...
dp之01揹包hdu2639(第k優解)
題意 給出一行價值,一行體積,讓你在v體積的範圍內找出第k大的值.注意,不要 和它的第一題混起來,它第一行是價值,再是體積 思路 首先dp i j 代表的是在體積為i的時候第j優解為dp i j 那麼,我們就可以這樣思考,i對應體積,那麼如果只是一維的dp i 代表的應該是體積為i時的最大值,那麼同...
dp之01揹包hdu2639(第k優解)
題意 給出一行價值,一行體積,讓你在v體積的範圍內找出第k大的值.注意,不要 和它的第一題混起來,它第一行是價值,再是體積 思路 首先dp i j 代表的是在體積為i的時候第j優解為dp i j 那麼,我們就可以這樣思考,i對應體積,那麼如果只是一維的dp i 代表的應該是體積為i時的最大值,那麼同...