SP22804
题意概括:
给定
题意分析:
既然每个物品能取无限次,那么这个问题即完全背包,因为价格可能为小数不方便作为数组存储,所以用重量做第一维。在重量至少为
样例一为例:
3 2
1 1.10
2 0.83
如果背包最高上限只到
温馨提示:输出需输出
AC 代码:
#include<bits/stdc++.h>
using namespace std;
float f[100005];
int main() {
float n,w;
cin>>w>>n;
for(register int i=1; i<=100004; i++) {
f[i]=0x7fff;
}
float ans=0x7fff;
for(register int b=1; b<=n; b++) {
register float v,wi;
scanf("%f%f",&v,&wi);
for(register int i=v; i<=w+v; i++) {
f[i]=min(f[i],f[int(i-v)]+wi);
if(i>=w) {
ans=min(ans,f[i]);
}
}
}
printf("%.2lf",ans);
}