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$|