社区讨论

关于输出方案的疑问

P2066机器分配参与者 5已保存回复 12

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
12 条
当前快照
1 份
快照标识符
@mi6hb520
此快照首次捕获于
2025/11/20 04:52
4 个月前
此快照最后确认于
2025/11/20 05:09
4 个月前
查看原帖
有可能 f[n][m]=value[n][i]+f[n-1][m-i]=value[n][j]+f[n-1][m-j] 这种情况是成立的,
CPP
void show(int i,int j)
{
    int k;
    if (i==0) return;
    for (k=0;k<=j;k++)
      if (max1==value[i][j-k]+f[i-1][k]) 
      {
          max1=f[i-1][k];
          show(i-1,k);
          cout<<i<<' '<<j-k<<endl;
          break;
      }
}///这是书上的做法100分
      if (max1==value[i][k]+f[i-1][j-k]) 
      {
          max1=f[i-1][j-k];
          show(i-1,j-k);
          cout<<i<<' '<<k<<endl;
          break;
}//然而我自己做的时候,只是把枚举的方式改一下,却只有90. 难道这样枚举会有漏洞????求路过的神犇帮助蒟蒻看下!
我是这么想的,方案有可能不只一种

回复

12 条回复,欢迎继续交流。

正在加载回复...