萌新提问:
为什么两次的一样代码会一次ac,一次re(虽然不是完全一样)
附上代码
#include <iostream>
using namespace std;
int main() {
int n, m, arr[31]={0}, * dp;
cin >> m >> n;
dp = new int[m];
for (int i = 0; i < n; i++) cin >> arr[i];
dp[0] = 1; dp[arr[0]] = 1;
for (int i = 1; i < n; i++) {
for (int j = m-1 ; j >= 0; j--) {
if (dp[j - arr[i]] == 1) dp[j] = 1;
}
}
for (int i = m-1 ; i >= 0; i--) {
if (dp[i] == 1) {
cout << m - i << endl;
return 0;
}
}
return 0;
}
第二次的时候把第dp的大小new成 m+1 就会re这是为什么???,真心发问,求教dalao。