传送门:https://www.luogu.com.cn/problem/P4157
借鉴大佬:https://blog.csdn.net/oampamp1/article/details/108919448
给一个整数N,将他拆成若干整数,求他们乘积最大值。
先 将 题 目 转 化 一 下 : 先将题目转化一下: 先将题目转化一下:
已 知 ∑ i = 1 n x i = N , 求 m a x { ∏ i = 1 n x i } ( n 表 示 x i 有 几 项 ) 已知\sum_{i=1}^n x_i=N,求max\{\prod_{i=1}^n x_i\}\;\;\;\;(n表示x_i有几项) 已知i=1∑nxi=N,求max{i=1∏nxi}(n表示xi有几项)
首 先 根 据 均 值 不 等 式 ( 调 和 ≤ 几 何 ≤ 算 术 ≤ 平 方 ) : 首先根据均值不等式(调和\leq 几何\leq 算术 \leq 平方): 首先根据均值不等式(调和≤几何≤算术≤平方): n ∑ i = 1 n 1 x i ≤ ∏ i = 1 n x i n ≤ ∑ i = 1 n x i n ≤ ∑ i = 1 n x i 2 n n \frac{n}{\sum_{i=1}^n\frac{1}{x_i}}\leq \sqrt[n]{\prod_{i=1}^nx_i}\leq \frac{\sum_{i=1}^nx_i}{n}\leq \sqrt[n]\frac{\sum_{i=1}^nx_i^2}{n} ∑i=1nxi1n≤ni=1∏nxi ≤n∑i=1nxi≤nn∑i=1nxi2
所 以 可 以 得 到 : 所以可以得到: 所以可以得到: ∑ i = 1 n x i n ≥ ∏ i = 1 n x i n \frac{\sum_{i=1}^nx_i}{n}\ge \sqrt[n]{\prod_{i=1}^nx_i} n∑i=1nxi≥ni=1∏nxi
( ∑ i = 1 n x i n ) n ≥ ∏ i = 1 n x i \left( \frac{\sum_{i=1}^nx_i}{n} \right)^n\ge \prod_{i=1}^nx_i (n∑i=1nxi)n≥i=1∏nxi
观 察 上 式 , 要 使 乘 积 最 大 , 那 需 要 尽 量 取 等 号 , 所 以 x i 要 尽 量 平 均 , 所 以 得 到 下 式 : 观察上式,要使乘积最大,那需要尽量取等号,所以x_i要尽量平均,所以得到下式: 观察上式,要使乘积最大,那需要尽量取等号,所以xi要尽量平均,所以得到下式:
( N n ) n = ∏ i = 1 n x i \left( \frac{N}{n} \right)^n= \prod_{i=1}^nx_i (nN)n=i=1∏nxi
令 y = ( N n ) n , 两 边 同 时 取 对 数 得 : 令y=(\frac{N}{n})^n,两边同时取对数得: 令y=(nN)n,两边同时取对数得:
ln y = n ln N − n ln n \ln y=n\ln N-n\ln n lny=nlnN−nlnn
两 边 同 时 对 n 求 导 得 : 两边同时对n求导得: 两边同时对n求导得:
y ′ y = ln N − l n n − 1 \frac{y'}{y}=\ln N-ln n - 1 yy′=lnN−lnn−1
得 y ′ = ( ln N − ln n − 1 ) ( N n ) n 得y'=(\ln N-\ln n - 1)(\frac{N}{n})^n 得y′=(lnN−lnn−1)(nN)n
令 y ′ = 0 , 因 为 ( N n ) n > 0 , 所 以 ln N − ln n − 1 = 0 , 即 : 令y'=0,因为(\frac{N}{n})^n>0,所以\ln N-\ln n - 1=0,即: 令y′=0,因为(nN)n>0,所以lnN−lnn−1=0,即:
n = e ln N − 1 = N e n=e^{\ln N - 1}=\frac{N}{e} n=elnN−1=eN
由 于 n 是 在 整 数 域 里 , 所 以 n 只 有 两 个 选 择 N 2 和 N 3 , 那 么 该 取 哪 一 个 呢 ? 由于n是在整数域里,所以n只有两个选择\frac{N}{2}和\frac{N}{3},那么该取哪一个呢? 由于n是在整数域里,所以n只有两个选择2N和3N,那么该取哪一个呢?
刚 开 始 的 ∏ i = 1 n x i = ( N n ) n = 2 N 2 或 3 N 3 , 现 在 就 看 哪 个 大 。 刚开始的\prod_{i=1}^nx_i=(\frac{N}{n})^n=2^{\frac{N}{2}}或3^{\frac{N}{3}},现在就看哪个大。 刚开始的∏i=1nxi=(nN)n=22N或33N,现在就看哪个大。
根 据 上 图 可 知 , 2 N 2 < 3 N 3 , 当 然 也 可 以 手 动 算 一 下 。 根据上图可知,2^{\frac{N}{2}}<3^{\frac{N}{3}},当然也可以手动算一下。 根据上图可知,22N<33N,当然也可以手动算一下。
所 以 得 ∏ i = 1 n x i = 3 N 3 最 大 , 即 优 先 取 3 , 没 有 3 取 2 , 总 之 , 推 导 到 最 后 就 是 个 憨 憨 题 。 总 结 一 下 : 所以得\prod_{i=1}^nx_i=3^{\frac{N}{3}}最大,即优先取3,没有3取2,总之,推导到最后就是个憨憨题。总结一下: 所以得∏i=1nxi=33N最大,即优先取3,没有3取2,总之,推导到最后就是个憨憨题。总结一下:
让 N m o d 3 : 让N mod \;3: 让Nmod3:
− N m o d 3 = 0 , 全 部 拆 成 3 , a n s = 3 N 3 - N mod\; 3=0,全部拆成3,ans=3^{\frac{N}{3}} −Nmod3=0,全部拆成3,ans=33N − N m o d 3 = 1 , 拿 出 一 个 3 然 后 加 1 组 成 4 , 其 他 都 为 3 , a n s = 3 N − 1 3 − 1 ∗ 4 - Nmod\;3=1,拿出一个3然后加1组成4,其他都为3,ans=3^{\frac{N-1}{3}-1}*4 −Nmod3=1,拿出一个3然后加1组成4,其他都为3,ans=33N−1−1∗4 − N m o d 3 = 2 , 拿 出 一 2 , 其 他 都 为 3 , a n s = 3 N − 2 3 ∗ 2 -Nmod\;3=2,拿出一2,其他都为3,ans=3^{\frac{N-2}{3}}*2 −Nmod3=2,拿出一2,其他都为3,ans=33N−2∗2
由 于 答 案 爆 l o n g l o n g , 所 以 用 J A V A 大 数 , 这 不 比 高 精 度 香 吗 ? 由于答案爆longlong,所以用JAVA大数,这不比高精度香吗? 由于答案爆longlong,所以用JAVA大数,这不比高精度香吗?