uestc1133菲波拉契数制
2016-03-28 11:36
543 查看
菲波拉契数制
Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others)
Submit
Status
我们定义如下数列为菲波拉契数列:
F(1)=1F(1)=1
F(2)=2F(2)=2
F(i)=F(i−1)+F(i−2)(i>=3)F(i)=F(i−1)+F(i−2)(i>=3)
给定任意一个数,我们可以把它表示成若干互不相同的菲波拉契数之和。比如1313有三种表示法
13=1313=13
13=5+813=5+8
13=2+3+813=2+3+8
现在给你一个数nn,请输出把它表示成若干互不相同的菲波拉契数之和有多少种表示法。
Input
第一样一个数TT,表示数据组数,之后TT行,每行一个数nn。T≤105T≤105
1≤n≤1051≤n≤105
Output
输出TT行,每行一个数,即nn有多少种表示法。
Sample input and output
Sample Input | Sample Output |
---|---|
6 1 2 3 4 5 13 | 1 1 2 1 2 3 |
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<algorithm> #include<cmath> #include<queue> #include<list> #include<vector> using namespace std; const int maxn=50; long long F[maxn],dp[100010]; void init(){ F[0]=F[1]=1; for(int i=2;i<maxn;++i){ F[i]=F[i-1]+F[i-2]; } dp[0]=1; for(long long i=1;i<maxn;++i){ for(long long j=100000;j>=F[i];--j){ dp[j]+=dp[j-F[i]]; } } } int main() { init(); long long i,j,k,n,t; scanf("%lld",&t); while(t--){ scanf("%lld",&n); printf("%lld\n",dp ); } return 0; }
相关文章推荐
- UIButton常用属性总结
- Unique Binary Tree
- Hadoop 数据类型与文件结构剖析 Sequence, Map, Set, Array, BloomMap Files
- UIDatePicker - 日期选择器
- 用阻塞队列LinkedBlockingQueue实现生产者消费者先进先出
- 【MUI】动态索引列表实现【搜索有效的方法】
- 环信 Ease3.0SDK 与EaseUI3.0 集成汇总 (卡壳的朋友们可以看看,已顺利集成成功)
- easyUI自带的时间插件日期选择、月份选择、时间选择的使用
- 安卓原生操作数据库时,使用ContentValues类
- LeetCode-Range Sum Query - Mutable
- mysql-异常Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1
- [uivier removefromsuperview]之后别忘了设置为nil
- ui控件的属性一般都是weak,但是内部变量的属性都是强引用,一般我们都是创建一个内部变量,然后让控件引用属性指向内变量
- Gradle build.gradle to Maven pom.xml
- 对于要不断使用的uiview一般通过懒加载的形式,而不是创建一个销毁一个
- codeforces 652E . Pursuit For Artifacts 强连通分量
- hdu 5493 Queue 树状数组第K大或者二分
- 让UITableview里自定义分区头部随着滑动而滑动
- requireJs模块化实现返回顶部的功能
- BlockingQueue