社区讨论
这道题没有人用动态规划吗
P11462 huaijiao 要加学参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @m5ckzyue
- 此快照首次捕获于
- 2024/12/31 22:46 去年
- 此快照最后确认于
- 2025/11/04 12:07 4 个月前
看了题解好像没有人用dp分组背包,那我发个吧
CPP#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;
struct bag{
double c,k;
}p[1005];
int main(){
double n,dp[1005];
int m;
memset(dp,0,sizeof(dp));
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>p[i].c;
}
for(int i=1;i<=n;i++){
cin>>p[i].k;
}
for(int i=1;i<=n;i++){
for(int j=m;j>=1;j--){
for(int k=j;k>=0;k--){
double x=min(1.0,k/p[i].k)*100.0;
dp[j]=max(dp[j],dp[j-k]+x*p[i].c);
}
}
}
printf("%.4lf",dp[m]);
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...