基本不等式解决乘积最大问题(洛谷P1887题题解,Java语言描述)
生活随笔
收集整理的這篇文章主要介紹了
基本不等式解决乘积最大问题(洛谷P1887题题解,Java语言描述)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目要求
P1887題目鏈接
分析
假設m為2,就是分為兩組使之和最大,根據基本不等式,
已知x+y=k(k為常數),S=x*y,當x=y時,有S的最大值。
同樣地,當一個數n被分為m份時,當每份數量相等,這m個數的乘積最大。
(不懂的反思反思自己基本不等式咋學的吧……)
所以,我們只需要使這m個數都相等就行了,所以有:q=n/m。
題目要求每個數都為整數,所以每個數要盡量的接近q。
另外,在Java/C中,整數間的n/m結果源于向下取整,所以這些數只有兩種:
- n/m
- n/m +1
我們只需清楚n/m和n/m+1分別有多少就行了唄……
說明:字典序是從小到大!!!!!
所以先輸出n/m+1,再輸出n/m就完事!
AC代碼(Java語言描述)
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int m = scanner.nextInt(), n = scanner.nextInt();int mod = m % n;int division = m / n;StringBuilder result = new StringBuilder();for (int i = mod; i < n; i++) {result.append(division).append(" ");}division++;for (int i = 0; i < mod; i++) {result.append(division).append(" ");}scanner.close();System.out.println(result.toString().trim());} } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的基本不等式解决乘积最大问题(洛谷P1887题题解,Java语言描述)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据结构与算法】链式栈的Java实现
- 下一篇: 洛谷P1116题解(Java语言描述)