P12070 [THOI 2014] 函数求解
题目背景
搬运自 [2014 年清华大学信息学邀请赛](https://gitlink.org.cn/thusaa/thoi2014)。
题目描述
定义正整数域上的函数 $f(x): \N^+ \to \N^+$ 满足:
$$f(t^mf(s))=sf(t)^m,\forall s,t \in \N^+$$
满足条件的函数会有很多,例如 $f(x)=x$ 就是一个解。
现给定 $m,n$,求 $f(n)$ 的最小值。
输入格式
由于输入的 $n$ 可能很大,我们按照质因数分解的形式输入:
$$n=\displaystyle\prod_{i=1}^{d}p_i^{q_i}$$
输入第一行包含两个整数 $m,d$。接下来 $d$ 行,第 $i$ 行包含一对整数 $p,q$。数据保证 $p$ 为质数且 $q_i \gt 0$。
输出格式
输出一行表示最小的 $f(n)$,由于数值较大,请将输出答案以 $e$ 为底取对数输出,即 $\ln(f(n))$。结果保留四位小数。
说明/提示
**【样例解释】**
$n=2\times3^2=18$。
一个可行的最优解为:
|$n$|$f(n)$|
|:-:|:-:|
|$1$|$1$|
|$2$|$3$|
|$3$|$2$|
|$4$|$9$|
|$5$|$7$|
|$6$|$6$|
|$7$|$5$|
|$8$|$27$|
|$9$|$4$|
|$10$|$21$|
|$11$|$13$|
|$12$|$18$|
|$13$|$11$|
|$14$|$15$|
|$15$|$14$|
|$16$|$81$|
|$17$|$23$|
|$18$|$12$|
$f(n)=12$,而这个可行解是让 $f(n)$ 最小的解之一,故最终答案为 $\ln(12)\approx2.4849$。
**【小贴士】**
在 C/C++ 中,包含在 ``(或 `` )中的 `log` 函数,即 $\ln$ 函数。
对于保留 $4$ 位有效数字的输出,C/C++ 输出语句举例:
`printf("%.4f\n", answer);`
在 Pascal 中直接使用函数 `ln` 即可。
对于保留 $4$ 位有效数字的输出,Pascal 输出语句举例:
`writeln(answer:0:4);`
**【数据范围】**
本题共 $20$ 个测试点,每个测试点等分。
|测试点|特殊性质|
|:-:|:-:|
|$1 \sim 2$|$m \le 2, n \le 10$|
|$3 \sim 5$|$p_i \le 100, q_i \le 1,m \le 2, d \le 10$|
|$6 \sim 7$|$p_i \le 1000, q_i \le 1, m \le 2, d \le 50$|
|$8 \sim 10$|$p_i \le 1000, q_i \le 2, m \le 2, d \le 50$|
|$11 \sim 15$|$p_i \le 2000, q_i \le 5, m \le 10, d \le 50$|
|$16 \sim 20$|$p_i \le 2000, q_i \le 5, m \le 10, d \le 100$|