题解 U534159 【降价处理】
题目链接:降价处理
关于题目:作为 T2,一道数学题。
应用算法:最基础的数论。
\(\qquad\!\!\)这道题的题意还算明确,正解也非常好想,就是所有 \(w_i\) 的 \(\gcd\)。
\(\qquad\!\!\)我们考虑证明这个命题:(设每天在这 \(n\) 家子公司内该商品单价最高的所有家公司需将单价减少此时在这 \(n\) 家子公司内该商品单价最低的子公司该商品的单价)
\(\qquad\!\!\)设最后每家子公司的单价都降为 \(r\),则倒推出在最后一次降价前一定为 \(k\)(一个正整数)家子公司的单价为 \(2r\)。
\(\qquad\!\!\)我们继续倒着向前推,对于第 \(i\) 次降价,被改动的最大单价原来为第 \(i+1\) 次降价前的两个单价之和,根据在第 \(i+1\) 次降价前所有的单价都为 \(w_i=k_ir\)(\(k_i\) 为一个正整数),那么第 \(i\) 次降价前的所有单价也都是 \(r\) 的正整数倍。
\(\qquad\!\!\)到这里我们证明了 \(r\) 为 \(w_i\) 的公约数,但是为什么一定是 \(\gcd\) 呢?因为任意两个正整数辗转相除/更相减损的得数不可能比这两个数的 \(\gcd\) 小,对于这 \(n\) 个单价也是这样,所以 \(r\) 一定为所有的 \(w_i\) 的 \(\gcd\)。
\(\qquad\!\!\)至此,我们证毕这道题的答案为所有\(w_i\) 的 \(\gcd\)。
\(\qquad\!\!\)代码(码风不喜勿喷):
1 |
|