社区讨论
RE求助(不是数组越界)
P1717钓鱼参与者 3已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mhj0ik1o
- 此快照首次捕获于
- 2025/11/03 18:43 4 个月前
- 此快照最后确认于
- 2025/11/03 18:43 4 个月前
调试信息告诉我说是浮点异常错误,本萌新头一回见到,求大佬指点
CPP#include<iostream>
using namespace std;
int n,h,f[30],d[30],t[30],m,ans,cnt;
int dp[2000];
int main(){
cin>>n>>h;
m=h*60;
for(int i=1;i<=n;i++) cin>>f[i];
for(int i=1;i<=n;i++) cin>>d[i];
int tmp=0;
for(int i=1;i<=n-1;i++){
cin>>t[i];
tmp+=t[i]*5;
}
int l=int((m-tmp)/5);//能钓l次鱼
for(int i=0;i<=l;i++) dp[i]=-1*1e5;
// cout<<l<<endl;
//多重背包,容量为l,n个物品(体积为1)
for(int i=1;i<=n;i++){
for(int j=l;j>=0;j--){
for(int k=0;k<=max(int(f[i]/d[i]),1)&&k<=j;k++){
int w=k*f[i]-k*(k-1)/2*d[i];
dp[j]=max(dp[j],dp[j-k]+w);
}
}
}
// for(int i=0;i<=l;i++){
// cout<<dp[i]<<" ";
// }
// cout<<endl;
cout<<dp[l];
return 0;}
/*std::cin >> n >> V;
for (int i = 1, v, w, s; i <= n; ++i) {
std::cin >> v >> w >> s;
for (int j = V; ~j; --j)
for (int k = 0; k <= s && k * v <= j; ++k)
f[j] = std::max(f[j], f[j - k * v] + k * w);
}
return 0;
}//抄dp模版
*/
回复
共 4 条回复,欢迎继续交流。
正在加载回复...