题目描述

从文件中读入一个正整数n(10≤n≤31000)。要求将n写成若干个正整数之和,并且使这些正整数的乘积最大。 例如,n=13,则当n表示为4+3+3+3(或2+2+3+3+3)时,乘积=108为最大。

输入

只有一个正整数: n (10≤n≤31000)

输出

第1行输出一个整数,为最大乘积的位数。 第2行输出最大乘积的前100位,如果不足100位,则按实际位数输出最大乘积。 (提示:在给定的范围内,最大乘积的位数不超过5000位)。

样例输入

13

样例输出

3
108


题解

高精度

首先根据某小学奥数理论,如果n%3==0,则全拆成3;如果n%3==1,则拆出来一个4,其余全拆成3;如果n%3==2,则拆出来一个2,其余全拆成3.

然后高精度乘低精度就好了。

由于有位数限制,所以比较懒没有压位,可能会慢点。

#include <cstdio>
#include <cstring>
struct data
{int len , num[5010];data(){len = 0 , memset(num , 0 , sizeof(num));}data operator=(const int a){len = 1 , num[0] = a;return *this;}data operator*(const int a)const{data t;int i;for(i = 0 ; i < len ; i ++ ) t.num[i] += num[i] * a , t.num[i + 1] += t.num[i] / 10 , t.num[i] %= 10;t.len = len + (bool)t.num[len];return t;}void output(){printf("%d\n" , len);int i;for(i = len - 1 ; i >= 0 && i >= len - 100 ; i -- ) printf("%d" , num[i]);printf("\n");}
}ans;
int main()
{int n , i;scanf("%d" , &n);ans = (n + 1) % 3 + 2;for(i = 1 ; i <= (n - 2) / 3 ; i ++ ) ans = ans * 3;ans.output();return 0;
}

转载于:https://www.cnblogs.com/GXZlegend/p/6670378.html

【bzoj1263】[SCOI2006]整数划分 高精度相关推荐

  1. bzoj 1263: [SCOI2006]整数划分

    1263: [SCOI2006]整数划分 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 1449  Solved: 736 [Submit][Stat ...

  2. 大概是:整数划分||DP||母函数||递推

    整数划分问题 整数划分是一个经典的问题. Input 每组输入是两个整数n和k.(1 <= n <= 50, 1 <= k <= n) Output 对于每组输入,请输出六行. ...

  3. C语言接收一个整数划分成5的倍数,整数划分为连续整数;整数划分

    参考博客:http://www.cnblogs.com/nokiaguy/archive/2008/05/11/1192308.html 1.整数划分为连续整数: 如将15划分为连续整数之和: 15 ...

  4. 51nod 1201:整数划分 超级好的DP题目

    1201 整数划分 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  关注 将N分为若干个不同整数的和,有多少种不同的划分方式,例如:n = 6,{6} { ...

  5. 算法笔记——整数划分1

    题目来源:NYOJ90 问题描述: 将正整数n表示成一系列正整数之和:n=n1+n2+-+nk, 其中n1≥n2≥-≥nk≥1,k≥1. 正整数n的这种表示称为正整数n的划分.求正整数n的不 同划分个 ...

  6. Acwing900. 整数划分[计数类dp]:完全背包解法

    文章目录 题目分析 完全背包解法 题目链接 题目分析 完全背包解法 请复习完全背包模板完全背包dp优化内有完整标准完全背包的推导过程 状态表示: f[i][j]f[i] [j]f[i][j] 表示从 ...

  7. 4.1 基础-放苹果(整数划分)

    题目 题目描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. 输入 每个用例包含二个整数M和N.0<=m ...

  8. hdu 5230(整数划分,dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5230 解题思路: 这是一个整数划分的模型: 将n划分为k个整数的划分数 设dp[i][j]为将i划分为 ...

  9. 整数划分递归相关问题

    算法设计----整数划分递归相关问题 一.原问题 整数划分,是指把一个正整数n写成如下形式: 假设整数n,能被划分为i段n=a1+a2+...ai,其中ak为n中划分的最大整数(1<=ak< ...

最新文章

  1. Web攻防之XSS,CSRF,SQL注入
  2. iOS和android的屏幕适配
  3. QT+VTK 对接使用
  4. Tomcat几种启动报错及解决办法
  5. log4j 新建日志 重启_Java中log4j控制写入日志开关
  6. 麦克风阵列的同步性、一致性、峰值幅度、RMS、DC偏移
  7. html当当网上书店,当当网上书店案例代码+css+js+images
  8. 哈啰单车JAVA面经
  9. HIVE的基本使用05(HSQL调优)
  10. 概率图模型(05): 揭示局部概率模型, 稀疏化网络表示(Structured-CPDs)
  11. (附源码)node.js物资管理系统 毕业设计 071130
  12. Win11筛选键怎么关闭?Win11关闭筛选键的两种方法
  13. python实现KNN算法并可视化展示
  14. python爬取问卷星内容,Python 问卷星自动填写 爬虫
  15. mplfinance 一个堪称完美python量化金融可视化工具详析
  16. 吃货贴 | 「咸、甜、辣」如何影响肠道菌群?
  17. 绿化草皮铺装施工与套用定额
  18. 网页自动填表html,WebBrowser1.HtmlInput 实现浏览器文本自动填写与点击
  19. RTD2785T RTD2785R 2K eDP屏驱动芯片介绍
  20. 对话依图医疗总裁倪浩:AI 产品只是第一步,未来要和医院制定中国儿童骨龄新标准...

热门文章

  1. Flask和mysql多线程_Flask解析(二):Flask-Sqlalchemy与多线程、多进程
  2. java牛客排序算法题_《剑指offer》面试题28:字符串的排列(牛客网版本) java...
  3. linux查看有几个终端命令,如何知道你在 Linux 里最常使用的几个命令?
  4. java mysql 语句解析器_几种基于Java的SQL解析工具的比较与调用
  5. win10改成ubundu主题_如何将ubuntu引导win10,修改为win10引导ubuntu
  6. duilib设置滚动条自动滚动到底
  7. 操作系统上机作业--使用系统调用实现mycat
  8. 线性结构节点类型(三)
  9. php终止脚本执行(exit、die、return)
  10. python 二项分布_二项分布的理论基础、应用及Python实践