POJ - 1032: Parliament

简介: POJ - 1032: Parliament

题目链接:点击打开链接

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

解题思路:点击打开链接


AC 代码

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
#include<stack>
#include<bitset>
#include<cstdlib>
#include<cmath>
#include<set>
#include<list>
#include<deque>
#include<map>
#include<queue>
#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<len-1;i++)
        {
            rs+=a[i];
            if(n-rs<a[i+1])
            {
                b[k++]=a[i];
                rs=n-rs;
                int j=k-1;
                while(1)
                {
                    b[j--]+=1;
                    rs--;
                    if(rs<=0) break;
                    if(j==-1) j=k-1;
                }
                break;
            }
            else if(n-rs==a[i+1])
            {
                b[k++]=a[i];
                b[k++]=a[i+1];
                break;
            }
            else
                b[k++]=a[i];
            if(rs<=0) break;
        }
        printf("%d",b[0]);
        for(int i=1;i<k;i++)
            printf(" %d",b[i]);
        puts("");
    }
    return 0;
}
目录
相关文章
|
Java 人工智能
|
Java 人工智能 Windows
|
机器学习/深度学习
|
Java 测试技术
HDU 1847
Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3204    Accepted Submission(s): 2008 Problem Description 大学英语四级考试就要来临了,你是不是在紧张的复习?也许紧张得连短学期的ACM都没工夫练习了,反正我知道的Kiki和Cici都是如此。
838 0
|
存储
hdu 2203 亲和串
点击打开链接hdu 2203 思路:kmp 分析: 1 题目要求的是给定字符串s1 和 s2,问s1能否通过移位得到使得s2包含在s1里面。
805 0
|
存储
hdu 3724 Encoded Barcodes
点击打开链接hdu 3742 思路:字典树 分析: 1 题目给定n个单词,有m次的询问。每一次的询问会有k个长度为8的条形码,条形码是8个double组成。
891 0

热门文章

最新文章