Just do it130 2021-10-14 23:37 采纳率: 93.3%
浏览 14

数组的定义位置不同导致结果不同

#include
#include
using namespace std;
int value[3510], weight[3510];
int dp[13010];
int main()
{
int n, M;

cin >> n;
cin >> M;
for (int i = 1; i <= n; i++) {
    cin >> weight[i] >> value[i];
}
for (int i = 1; i <= n; i++) {
    for (int j = M; j >= weight[i]; j--) {
        dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);
    }
}
cout << dp[M];
return 0;

}
最上面数组定义在主函数外面结果运行就是正确的,放在主函数里面也能运行但是结果是错的,为什么呢?

  • 写回答

2条回答 默认 最新

  • 神仙别闹 2021-10-14 23:42
    关注

    理论上讲没有区别,看一下是否是项目没有保存或者重新生成运作一下

    评论

报告相同问题?

问题事件

  • 创建了问题 10月14日