社区讨论

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 条回复,欢迎继续交流。

正在加载回复...