POJ - 1032: Parliament

题目链接:点击打开链接


题目大意:设 n 是一个正整数。现在要求将 n 分解为若干个自然数之和(要求这些自然数互不相同),使得自然数的成绩最大。输出这个最大的乘积


解题思路:点击打开链接


AC 代码

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

#define mem(a,b) memset(a,b,sizeof a);
#define INF 0x3f3f3f3f

using namespace std;

typedef long long ll;

int a[100],b[100];

int main()
{
    int rs=0,len=0;
    for(int i=2;rs<=1100;i++)
    {
        a[len++]=i;
        rs+=i;
    }

    int n;
    while(~scanf("%d",&n))
    {
        if(n<=4) // 没办法拆分成不同的数使乘积大于等于 (1*n)
        {
            //...
            continue;
        }

        rs=0;
        int k=0;
        for(int i=0;i

你可能感兴趣的:(#,ACM,#,数论,#,POJ)