XYLX 10.13 最优分解方案
来源:互联网 发布:生鲜品配送管理优化 编辑:程序博客网 时间:2024/04/27 19:00
最优分解方案
[问题描述]
经过第一轮的游戏,不少同学将会获得圣诞特别礼物,但这时细心的数学课代表发现了一个问题:留下来的人太多而使礼物数量可能不够,为此,加试了一道数学题:将一个正整数n分解成若干个互不相等的正整数的和,使得这些数的乘积最大,当主持人报出一个n后,请你立即将这个最大值报出来,现请你帮你的好友编一个程序来解决这个问题。
输入输出
[输入文件]
输入文件best.in中只有1个数n(其中1<=n<=1000)。
[输出文件]
输出文件best.out中也是一个数,是乘积的最大值。
样例 Sample
[输入样例]
7
[输出样例]
12
分析
该题直接将数分解成从2开始连续的数字,如果不足以连续则将最后一个数字从后向前一次分给每个数一个1.知道分完;
注意要加高精。
代码如下
program best;type ar=array[0..10000] of longint;var n,sum,total,now,i,j:longint; ans:ar; num:array[1..10000] of longint;procedure mutiply(var ans:ar;x:longint);var i:longint;begin for i:=1 to ans[0] do begin ans[i]:=ans[i]*x; end; for i:=1 to ans[0]+20 do begin ans[i+1]:=ans[i+1]+(ans[i] div 10); ans[i]:=ans[i] mod 10; end; ans[0]:=ans[0]+20; while (ans[0]>0) and (ans[ans[0]]=0) do dec(ans[0]);end;begin readln(n); now:=2; sum:=0; while n<>0 do begin if n>now then begin inc(sum); num[sum]:=now; n:=n-now; now:=now+1; end else begin inc(sum); num[sum]:=n; n:=0; end; end; while (sum>1) and (num[sum]<=num[sum-1]) do begin j:=sum-1; while (j>0) and (num[sum]>0) do begin num[j]:=num[j]+1; num[sum]:=num[sum]-1; j:=j-1; end; if num[sum]=0 then dec(sum); end; ans[1]:=1; ans[0]:=1; for i:=1 to sum do begin mutiply(ans,num[i]); end; for i:=ans[0] downto 1 do write(ans[i]);end.
╮(╯﹏╰)╭
___ `-._\ / `~~"--.,_------>| `~~"--.,_ _.-'/ '.____,,,,----"""~~```'
萝卜,嘿嘿
0 0
- XYLX 10.13 最优分解方案
- 最优分解方案
- 【u225】最优分解方案
- 【贪心】tyvj P1260 最优分解方案
- 最优分解方案(贪心+高精乘单精)
- 【基础练习】【贪心】codevs2612 最优分解方案题解
- 最优自然数分解问题
- 最优分解问题
- 最优分解(贪心)
- 算法 最优分解问题
- 最优分解问题
- 最优分解问题
- 最优分解问题
- 最优分解问题
- 最优分解问题
- 最优分解问题
- HUNNU-10307-最优分解问题
- 最优分解问题-贪心算法
- ubuntu12.04安装gcc-4.4.6失败
- 基本字符串压缩
- 2-sat模板
- Android Studio中NDK开发
- JavaScript 匿名函数(anonymous function)与闭包(closure)
- XYLX 10.13 最优分解方案
- codeforces Inna and New Matrix of Candies
- DeepPose: Human Pose Estimation via Deep Neural Networks 阅读笔记
- sicily 1198. Substring
- socket编程注意的地方---bind socket error: Address already in use
- listview的单选/多选模式的实现
- HDU 2328 Corporate Identity (暴力 | kmp)
- 机器学习算法之旅
- Codeforces Round #327 (Div. 2) (591A,591B,590A(找规律),590B(二分))