题库 信息学奥赛题库 题目列表 第34~37题题目(魔法数字)小 H 的魔法数字是 4。给定...
单选题

第34~37题题目

(魔法数字)小 H 的魔法数字是 4。给定n,他希望用若干个 4 进行若干次加法、减法和整

除运算得到n。但由于小 H 计算能力有限,计算过程中只能出现不超过M = 10000 的正整数。求至少可能用到多少个 4。

例如,当n = 2 时,有 2 = (4 + 4)/4,用到了 3 个 4,是最优方案。

试补全程序。

#include<iostream>
#include
#include

using namespace std;

const int M = 10000;
bool Vis[M + 1];
int F[M + 1];

void update(int &x, int y) {
	if (y < x)
		x = y;
}

int main() {
	int n;
	cin >> n;
	for (int i = 0; i <= M; i++)
		F[i] = INT_MAX
		       ;
	①;
	int r = 0;
	while (②) {
		r++;
		int x = 0;
		for (int i = 1; i <= M; i++)
			if (③)
				x = i;
		Vis[x] = 1;
		for (int i = 1; i <= M; i++)
			if (④) {
				int t = F[i] + F[x];
				if (i + x <= M)
					update(F[i + x], t);
				if (i != x)
					update(F[abs(i - x)], t);
				if (i % x == 0)
					update(F[i / x], t);
				if (x % i == 0)
					update(F[x / i], t);
			}
	}
	cout << F[n] << endl;
	return 0;
}

①处应填()

A.

F[4] = 0

B.

F[1] = 4

C.

F[1] = 2

D.

F[4] = 1

题目信息
选择题 2021年 初赛
-
正确率
0
评论
35
点击
QQ
微信