给出n,把n分解为若干不相同数之和,使之乘积最大。
贪心,Discuss里面的思路:把n分解为从2开始的连续整数,如果有多,则从高位开始依次加1。如26,我们得到2+3+4+5+6,此时还剩余6(26-2-3-4-5-6),接下来从高位依次加一,变成3+4+5+6+7,还剩1,继续加给最大的7,最后答案是3+4+5+6+8

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
// freopen("in.txt","r",stdin);
int m,s=,cnt=,i,sum,j;
cin >> m;
for(i=;;i++)
{
s+=i;
cnt++;
if(s>m)
{
s=s-i; //
i--; //
cnt--; //
break;
}
}
// cout << s << endl;
// cout << i << endl;
// cout << cnt << endl;
s=m-((i)*(i+)*0.5-);
// cout << s << endl;
sum=s/cnt; //
if(sum>)
{
s=s-sum*cnt; //
}
// cout << sum << endl;
// cout << s << endl;
cout << (+sum);
for(j=;j<=i-s;j++)
{
cout << ' ' << (j+sum);
}
for(j=i-s+;j<=i;j++)
{
cout << ' ' << (j+sum+);
}
return ;
}

【贪心】 poj 1032 和为n的若干数最大乘积的更多相关文章

  1. JAVA第三周作业(从键盘输入若干数求和)

    JAVA第三周作业(从键盘输入若干数求和) 在新的一周,我学习了JAVA的IO编程.下面的代码实现了从键盘输入若干数求和的目标.import java.util.Scanner; public cla ...

  2. (Relax 水题1.2)POJ 1032 Parliament(将n分解成若干个互不相等的整数的和,并且是这些整数的乘积最大)

    题意:给出一个数n,将其拆分为若干个互不相等的数字的和,要求这些数字的乘积最大. 分析:我们可以发现任何一个数字,只要能拆分成两个大于1的数字之和,那么这两个数字的乘积一定大于等于原数.也就是说,对于 ...

  3. 贪心 POJ 2586 Y2K Accounting Bug

    题目地址:http://poj.org/problem?id=2586 /* 题意:某公司要统计全年盈利状况,对于每一个月来说,如果盈利则盈利S,如果亏空则亏空D. 公司每五个月进行一次统计,全年共统 ...

  4. 贪心 POJ 1328 Radar Installation

    题目地址:http://poj.org/problem?id=1328 /* 贪心 (转载)题意:有一条海岸线,在海岸线上方是大海,海中有一些岛屿, 这些岛的位置已知,海岸线上有雷达,雷达的覆盖半径知 ...

  5. poj 1032 Parliament 【思维题】

    题目地址:http://poj.org/problem?id=1032 Parliament Time Limit: 1000MS   Memory Limit: 10000K Total Submi ...

  6. 贪心 POJ 2109 Power of Cryptography

    题目地址:http://poj.org/problem?id=2109 /* 题意:k ^ n = p,求k 1. double + pow:因为double装得下p,k = pow (p, 1 / ...

  7. Poj 1032 分类: Translation Mode 2014-04-04 09:09 111人阅读 评论(0) 收藏

    Parliament Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 16521   Accepted: 6975 Descr ...

  8. POJ 1032问题描述

    Description New convocation of The Fool Land's Parliament consists of N delegates. According to the ...

  9. Poj 1032 Parliament

    Parliament Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 19103   Accepted: 8101 Descr ...

随机推荐

  1. 设置radio的选中状态

    $("#s7").click(function () { var a = document.getElementById("s7"); if (a.checke ...

  2. PostgreSQL 命令

    查看Schema: select * from information_schema.schemata; 查看使用的配置文件: SHOW config_file;

  3. JS面向对象基础1

    根据之前看了面向对象相关的视频,按照自己的理解,整理出相关的笔记,以便自己的深入理解.     如果要判断两个数是否相等,将值乘以10或者100,转换成整数再进行比较 例如:a++与++a 短路运算符 ...

  4. C#数组和元组

    声明数组 int[] myArray; 初始化数组 myArray = new int[4]; 数组是引用类型当初始化完毕后,将在托管堆上分配内存空间,其结构图如下

  5. WEB前端组件思想【分页】

    DEMO1: 很早就想写一些功能性的组件,无奈技术有限一点一点的边工作,边学. 近日工作中用到分页功能,当然由于加快业务进度,第一选择肯定是选择插件,但是实用性来说,还是有那么一点不适合.毕竟插件是通 ...

  6. React 相关资料

    learncodeacademy/react-js-tutorials MobX

  7. 关于c++的引用

    引用的本质 引用事实上就是两个变量指向同一个地址 int x; int &y = x; cout << &x << endl; cout << &a ...

  8. LeetCode OJ 78. Subsets

    Given a set of distinct integers, nums, return all possible subsets. Note: Elements in a subset must ...

  9. idea 切换新项目 新窗口 原窗口

    选择 file--setting. 在新打开的窗口中选择 Appearance & Behavior--System Settings 点 Confirm window to open pro ...

  10. Python 的方法重载

    为防止两个模块互相导入的问题,Python默认所有的模块都只导入一次,如果需要重新导入模块,Python2 7可以直接用reload(),Python3可以用下 为防止两个模块互相导入的问题,Pyth ...