zoukankan      html  css  js  c++  java
  • ACdream 1431 Sum vs Product

    题目链接:http://115.28.76.232/problem?

    pid=1431


    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




    这个题目事实上仅仅要枚举下因子。暴力dfs一下就能过。。

    //#pragma comment(linker, "/STACK:36777216")
    #include <functional>
    #include <algorithm>
    #include <iostream>
    #include <fstream>
    #include <sstream>
    #include <iomanip>
    #include <numeric>
    #include <cstring>
    #include <climits>
    #include <cassert>
    #include <complex>
    #include <cstdio>
    #include <string>
    #include <vector>
    #include <bitset>
    #include <queue>
    #include <stack>
    #include <cmath>
    #include <ctime>
    #include <list>
    #include <set>
    #include <map>
    using namespace std;
    #define CLR(A,B) memset(A,B,sizeof(A))
    #define CPY(A,B) memcpy(A,B,sizeof(B))
    #define long long ll
    #define MP(A,B) make_pair(A,B)
    int N;
    long long cnt;
    int dfs(int now,long long sum,long long mul,int pre){
        if(now==N){
            cnt++;
            return 1;
        }
        for(int i=pre;i<2000;i++){
            int ts=sum+i,tm=mul*i;
            int ms=ts+N-now-1,mm=tm;
            if(ms==mm){cnt++;continue;}
            if(ms<mm) return 0;
            dfs(now+1,ts,tm,i);
        }
    }
    int main(){
        int F[550];
        for(int i=2;i<=500;i++){
            N=i;cnt=0;
            dfs(0,0,1,2);
            F[i]=cnt;
        }
        while(~scanf("%d",&N)) printf("%d
    ",F[N]);
    	return 0;
    }
    




  • 相关阅读:
    JDBC数据库访问操作的动态监测 之 p6spy
    ZeroC Ice启用SSL通讯的配置
    heartbeat在yum系发行版本的处理资料
    VisualStudio 调试Linux
    JVM之上的语言小集
    程序人生【一些经典的资料】
    读史知今、以史为鉴 【技术商业化】
    ipython notebook 浏览器中编写数学公式和现实
    大数据 云计算 等搜集的资料
    GO 1.5 代码编译安装 [centos7 64位]
  • 原文地址:https://www.cnblogs.com/llguanli/p/7047322.html
Copyright © 2011-2022 走看看