CCF GESP 2024年12月认证 C++ 5级

编程题
共 2 道 每题 25 分 共计 50 分
第 1 题
奇妙数字
时间限制:1s 内存限制:512MB

题目描述

小杨认为一个数字 $x$ 是奇妙数字当且仅当 $x=p^a$,其中 $p$ 为任意质数且 $a$ 为正整数。例如,$8=2^3$,所以 $8$ 是奇妙的,而 $6$ 不是。

对于一个正整数 $n$,小杨想要构建一个包含 $m$ 个奇妙数字的集合 $\{x_1,x_2,\cdots,x_m\}$,使其满足以下条件:

  • 集合中不包含相同的数字。
  • $x_1\times x_2\times \cdots\times x_m$ 是 $n$ 的因子(即 $x_1,x_2,\cdots,x_m$ 这 $m$ 个数字的乘积是 $n$ 的因子)。

小杨希望集合包含的奇妙数字尽可能多,请你帮他计算出满足条件的集合最多包含多少个奇妙数字。

输入格式

第一行包含一个正整数 $n$,含义如题面所示。

输出格式

输出一个正整数,代表满足条件的集合最多包含的奇妙数字个数。

样例说明

样例 1

输入:
128
输出:
3
样例解释:

关于本样例,符合题意的一个包含 3 个奇妙数字的集合是 {2,4,8}。首先,因为 $2=2^1,4=2^2,8=2^3$,所以 2,4,8 均为奇妙数字。同时,2×4×8=64 是 128 的的因子。

由于无法找到符合题意且同时包含 4 个奇妙数字的集合,因此本样例的答案为 3。

数据范围

对于全部数据,保证有 $2\le n\le 10^{12}$。

第 2 题
武器强化
时间限制:1s 内存限制:512MB

题目描述

小杨有 $n$ 种武器和 $m$ 种强化材料。第 $i$ 种强化材料会适配第 $p_i$ 种武器,小杨可以花费 $c_i$ 金币将该材料对应的适配武器修改为任意武器。

小杨最喜欢第 $1$ 种武器,因此他希望适配该武器的强化材料种类数严格大于其他的武器,请你帮小杨计算为了满足该条件最少需要花费多少金币。

输入格式

第一行包含两个正整数 $n,m$,含义如题面所示。

之后 $m$ 行,每行包含两个正整数 $p_i,c_i$,代表第 $i $ 种强化材料的适配武器和修改花费。

输出格式

输出一个整数,代表能够使适配第 $1$ 种武器的强化材料种类数严格大于其他的武器最少需要花费的金币。

样例说明

样例 1

输入:
4 4
1 1
2 1
3 1
3 2
输出:
1
样例解释:

花费 1,将第三种强化材料的适配武器由 3 改为 1。此时,武器 1 有 2 种强化材料适配,武器 2 和武器 3 都各有 1 种强化材料适配,满足适配第 1 种武器的强化材料种类数严格大于其他的武器。

数据范围

对于全部数据,保证 $1\le n,m\le 1\, 000$,$1\le p_i\le n$,$1\le c_i\le 10^9$。

编程题部分已到底了。