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

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

#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

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

    打赏 评论
  • qfl_sdu 2021-10-14 23:52

    数组的声明放在cin >>n;这一句上面和在main函数外面没什么区别。清理工程,保存一下,重新编译运行试试。

    打赏 评论

相关推荐 更多相似问题