JZOJ__Day 7:【普及模拟】max
来源:互联网 发布:电视节目片头制作软件 编辑:程序博客网 时间:2024/06/08 16:12
题目描述
一个正整数一般可以分为几个互不相同的自然数的和,如3=1+2,4=1+3,5=1+4=2+3,6=1+5=2+4,…。
现在你的任务是将指定的正整数n分解成m个(m>=1)互不相同的自然数的和,且使这些自然数的乘积最大。
输入
只一个正整数n,(3≤n≤10000)。
输出
第一行是分解方案,相邻的数之间用一个空格分开,并且按由小到大的顺序。
第二行是最大的乘积。
样例输入
10
样例输出
2 3 5
30
数据范围限制
30%的数据 3<=n<=100
程序
#include<cstdio> #include<iostream>using namespace std;int n,m,l,w,k[10001],a[10000],maxn=10000;void gaojin(int x){ int g=0,k=0; for (int i=maxn;i>=1;i--) { g=a[i]*x+k; a[i]=g%10; k=g/10; }}int main(){ freopen("max.in","r",stdin); freopen("max.out","w",stdout); cin>>n; m=n; l=2; if (n==4) { cout<<n<<endl; cout<<n; return 0; } while (m>=l) { w++; k[w]=l; m-=l; l++; } if (m<=w) for (int i=m;i>=1;i--) k[w-i+1]++; else { for (int i=w;i>=1;i--) k[w-i+1]++; for (int i=m-w;i>=1;i--) k[w-i+1]++; } a[maxn]=1; for (int i=1;i<=w;i++) { cout<<k[i]<<' '; gaojin(k[i]); } cout<<endl; l=1; while (a[l]==0) l++; for (int i=l;i<=maxn;i++) cout<<a[i]; fclose(stdin); fclose(stdout); return 0;}
阅读全文
1 0
- JZOJ__Day 7:【普及模拟】max
- JZOJ__Day 7:【普及模拟】蚂蚁
- JZOJ__Day 2:【普及模拟】串
- JZOJ__Day 1:【普及模拟】PLES
- JZOJ__DAY 4:【普及模拟】最大值
- JZOJ__Day 4:【普及模拟】火柴
- JZOJ__Day 4:【普及模拟】游戏
- JZOJ__Day 5:【普及模拟】num
- JZOJ__Day 8:【普及模拟】马农
- JZOJ__Day 9:【普及模拟】Square
- JZOJ__Day 3:【NOIP普及模拟】排序(sort)
- JZOJ__Day 3:【NOIP普及模拟】数数(count)
- JZOJ__Day 2:【NOIP普及模拟】和谐数
- JZOJ__Day 2:【NOIP普及模拟】分数
- JZOJ__Day 1:【NOIP普及模拟】JABUKE
- JZOJ__Day 1【NOIP普及模拟】MATRIX
- JZOJ__Day 5:【普及模拟】权势二进制
- JZOJ__Day 6:【普及模拟】团队背包(team)
- Java中的泛型
- Struts2
- 推荐几个网站 以后可用得到
- 项目加载编译实质性流程
- java 多态环境下对 方法和成员变量的调用
- JZOJ__Day 7:【普及模拟】max
- Kruskal/prim--最小生成树
- form表单下的button按钮会自动提交表单的问题
- Paint常用方法总结
- JZOJ 1774. 合并果子 (Standard IO)
- PAT程序设计考题——甲级1077(Kuchiguse ) C++实现
- git去除已经add index的文件
- 暑假杂感
- 作为一名及格的站长都知道内容为王,外链为皇”,一个上网站想要有一个好的排名除了要有吸惹人高质量的内容外还需要强年夜的外链。对于网站内容要环绕网站主题,若是自己文采欠好可以伪原创下,万万不要用工具伪原创