不是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变量,占用内存中的不同空间。( )

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


选择题

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

A.0
B.2
C.6
D.10
4) 若输入10 2 1 2 3 4则输出为( )。

A.0
B.2
C.6
D.10
5) 若输入10 4 2 1 3 3 4 5 7 9则输出为( )。

A.8
B.10
C.12
D.14
6) (4分)若输入20 10,接下来的输入是1到20,则输出为( )。
A.100
B.110
C.20
D.24
考点:
分析:
解答:
评论:
老师: