不是VIP会员,不能显示答案

题目解答

题目:
#include<bits/stdc++.h>

using namespace std ;

const int maxn = 1000005;

int n,m;

int w[maxn],c[maxn];

int f(int m,int n) {

if(n==0) return 0;

int x=f (m,n-1) ;

int y=0;

if(m-w[n]>=0) y=f(m-w[n],n-1)+c[n];

return max(x,y);

}

int main() {

cin>>m>>n;

for(int i=1; i<=n; i++)

cin>>w[i]>>c[i];

cout<<f(m,n);

return 0;

}




假设输入的n是不超过200的正整数,m是不超过30的正整数,w[i]、e[i]都是不超过5000的正整数,完成下面的判断题和单选题:



判断题

1) main函数里的m和n变量,与f函数里面的m和n变量,占用内存中的不同空间。( )

2) 输入m为0,此程序可能会死循环或发生运行错误。()


选择题

3) 若输入2 2 1 2 3 4则输出为( )。

4) 若输入10 2 1 2 3 4则输出为( )。

5) 若输入10 4 2 1 3 3 4 5 7 9则输出为( )。

6) (4分)若输入20 10,接下来的输入是1到20,则输出为( )。
考点:
分析:
解答:
评论:
老师: