acdream 1431 Sum vs Product
2015-08-10 17:49
183 查看
Sum vs Product
Time Limit: 4000/2000MS (Java/Others)Memory Limit: 128000/64000KB (Java/Others)SubmitStatisticNext
Problem
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 numbersbeautiful 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
mathlover题解及代码:
通过打表前几项我们会发现构成n。比方n=5时。其形式之中的一个是1 1 2 2 2,都是这样的非常多1,然后其它数字组合的形式。那么我们就能够枚举除了1以外的数字的组合,来计算sum
。比方数字组合为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\n",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; }
相关文章推荐
- 写给 Git 初学者的 7 个建议
- 初学Hibernate
- UVA 315 Network(无向图求割点)
- hadoop程序由1.X升级至2.x
- OC NSArray练习题 和 NSSet的常用方法
- 使用NoSQL Manager for MongoDB客户端连接mongodb
- js 操作jsonarray 创建、添加元素
- 两个div如何在同一行显示
- 面向对象设计七大原则
- POJ 1236 Network of Schools
- servlet监听器与事件
- Qt中connect的一些使用细节
- Oracle performance tuning
- (๑• . •๑)菜鸟入门我的小九九之JAVA版
- 使用limit头文件查看特定机器上数据类型数据范围
- C# SortedDictionary<TKey, TValue> 类
- 传统加速器的使用和蓝牙的使用
- 改革春风吹满地
- 部分二级页面打不开问题
- N! mod P(N-1e9,P-2e9,P为质数)