第 23 题
#include<bits/stdc++.h>
using namespace std;
int w[35000],d[35000],dp[35000];
int main()
{
int n,m;
scanf("%d%d",&n, &m);
for(int i=1; i<=n; ++i)
scanf("%d%d" ,&w[i],&d[i]);
for(int i=1; i<=n; ++i)
{
for(int j=m; j>=w[i]; --j)
dp[j]=max(dp[j],dp[j-w[i]]+d[i]);
}
printf("%d\n" ,dp[m]);
return 0;
}
判断题
第 23 题 上述代码中,双重循环里循环变量i的枚举顺序改为从w[i]到m,输出结果一定不变。
第 24 题 上述代码中,双重循环中变量i的枚举顺序改为从n到1,输出结果一定不变。( )
第 25 题 若输入数据中,1<= n <= 30000,1< = m<=30000, 1<= w[i]<= 30000,1<= d[i]<= 30000,则所求答案一定没有溢出。( )
第 26 题 若输入数据中,1<= n <= 30000,1<=m<=30000, 1<= w[i]<= 30000, 1< =d[i]<= 10^9,则所求答案一定没有溢出。( )
第 27 题 当输入为: 4 6 1 4 2 6 3 12 2 7 输出为( )。
第 28 题 上述代码的时间复杂度为( )。