• acdream 1431 Sum vs Product


    Sum vs Product

    Time Limit: 4000/2000MS (Java/Others)Memory Limit: 128000/64000KB (Java/Others)

    Problem Description

          Peter has just learned mathematics. He learned how to add, and how to multiply. The fact that 2 + 2 = 2 × 2 has amazed him greatly. Now he wants find more such examples. Peters calls a collection of numbers beautiful if the product of the numbers in it is equal to their sum. 

          For example, the collections {2, 2}, {5}, {1, 2, 3} are beautiful, but {2, 3} is not. 

          Given n, Peter wants to find the number of beautiful collections with n numbers. Help him!

    Input

          The first line of the input file contains n (2 ≤ n ≤ 500)

    Output

          Output one number — the number of the beautiful collections with n numbers.

    Sample Input

    2
    5
    

    Sample Output

    1
    3

    Hint

    The collections in the last example are: {1, 1, 1, 2, 5}, {1, 1, 1, 3, 3} and {1, 1, 2, 2, 2}.

    Source

    Andrew Stankevich Contest 23

    Manager


    题解及代码:


           通过打表前几项我们会发现构成n。比方n=5时。其形式之中的一个是1 1 2 2 2,都是这样的非常多1,然后其它数字组合的形式。那么我们就能够枚举除了1以外的数字的组合,来计算sum[n]。比方数字组合为2 3 4,那么依据公式我们知道2*3*4=24,2+3+4=9,那么我们还须要补上15个1,加上2 3 4 这三个数字,总共是18个数字,那么2 3 4必定属于sum[18]里面的一中情况。得到验证。这样我们就能用dfs来求出全部的情况数了。


    以下的代码是dfs的代码,由于怕超时的缘故,题目AC的代码是打表之后交的。

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    typedef long long ll;
    int sum[510];
    void init()
    {
      memset(sum,0,sizeof(sum));
    }
    void dfs(int nt,int nu,int su,int k)
    {
        for(int i=k;i<=500;i++)
        {
            if(nu*i>1000) break;
            sum[nu*i-su-i+nt+1]++;
            //printf("%d %d %d %d %d
    ",nu,su,i,nt+1,nu*i-su-i+nt+1);
            dfs(nt+1,nu*i,su+i,i);
        }
    }
    
    
    int main()
    {
        init();
        for(int i=2;i<=500;i++)
        dfs(1,i,i,i);
        for(int i=2;i<=500;i++)
            printf("%d,",sum[i]);
        return 0;
    }
    







    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    3、使用DB first创建上下文并生成数据库表
    2、新建解决方案,新建项目,配置引用
    1、Visual Studio 2019下载及安装
    7、权限管理数据库
    6、添加Common类
    四年下学期古诗
    三年级必背古诗
    用PHPCMS V9完成wap网站四步法
    Thinkphp笔记---查询方式
    ThinkPHP快捷查询
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4718711.html
Copyright © 2020-2023  润新知