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

题目解答

题目:
#include <cstdio>
using namespace std;

const int maxn = 1005;

int n, B, w[maxn], v[maxn];

int gcd(int u, int v) {
	if(v == 0)
		return u;
	return gcd(v, u % v);
}

void print(int w,int v) {
	int gcd(W, v);
	w= w/ d;
	v= v/ d;
	if(v == 1)
		printf("%d\n", w);
	else
		printf("%d/%d\n", W,v);
}

void swap(int &x,int &y) {
	int t=x; x=y; y=t;
}

int main() {
	scanf("%d %d", &n,&B);
	for(int i=1; i<=n; i++) {
		scanf("%d%d"&w[i], &v[1]);
	}
	for(int i=1; i<n; i++)
		for(int j=1; j<n; j++)
			if() {
				swap(w[j], w[j + 1]);
				swap(v[j], v[j + 1]);
			}
	int curV, curW;
	if() {} else {
		print(B * w[1], v[1]);
		return 0;
	}
	
	for(inti=2; i<=n; i++)
		if(curV + v[i] <= B) {
			curV += v[i];
			curW += w[i] ;
		} else {
			print();
			return 0;
		}
	print();
	return 0;
}


选择题

1) ①处应填()

A.w[j]/v[j]
B.w[j] / v[j] > w[j+1] /v[j + 1]
C.v[j]*w[j+1]
D.w[j] * v[j +1] < w[j +1] *v[j]
2) ②处应填()

A.w[1]<=B
B.v[1]<=B
C.w[1]>=B
D.v[1] >= B
3) ③处应填()

A.print(v[1], w[1]); return 0;
B.curV=0;curW=0;
C.print(W[1], v[1]); return 0;
D.curV = v[1]; curW = w[1];
4) ④处应填()

A.curW * v[i] + curV * w[i], v[i]
B.(curW - w[i]) * v[i] + (B - curV) * W[i], v[i]
C.curW + v[i], w[i]
D.curW * v[i] + (B - curV) * W[i], v[i]
5) ⑤处应填()
A.curW, curV
B.curW,1
C.curV, curW
D.curV, 1
考点:
分析:
解答:
评论:
老师: