hdu5167 Fibonacci set和map
2015-09-05 23:23
232 查看
Fibonacci
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1857 Accepted Submission(s): 467
Problem Description
Following is the recursive definition of Fibonacci sequence:
Fi=⎧⎩⎨01Fi−1+Fi−2i
= 0i
= 1i
> 1
Now we need to check whether a number can be expressed as the product of numbers in the Fibonacci sequence.
Input
There is a number T shows
there are T test
cases below. (T≤100,000)
For each test case , the first line contains a integers n , which means the number need to be checked.
0≤n≤1,000,000,000
Output
For each case output "Yes" or "No".
Sample Input
3 4 17 233
Sample Output
Yes No Yes
#include<iostream> #include<cstring> #include<cstdio> #include<ostream> #include<istream> #include<algorithm> #include<queue> #include<string> #include<cmath> #include<set> #include<map> #include<stack> #include<vector> #define fi first #define se second #define ll long long #define pii pair<int,int> #define inf (1ll<<60) #define eps 1e-8 #define pb push_back using namespace std; const int maxn=110005; int n; ll d[1000]; map<ll,int>mp; set<ll>se; void gao() { ll N=1000000000; queue<ll>que; for(int i=0;i<=45;i++) { que.push(d[i]); mp[d[i]]=1; se.insert(d[i]); } while(!que.empty()) { ll u=que.front(); que.pop(); for(int i=3;i<=45;i++) { ll v=u*d[i]; if(v>N) break; if(mp.count(v)) continue; mp[v]=1; que.push(v); se.insert(v); } } } int main() { d[0]=0; d[1]=1; for(int i=2;i<=45;i++) { d[i]=d[i-2]+d[i-1]; } gao(); int t; scanf("%d",&t); ll n; while(t--) { scanf("%I64d",&n); if(*se.lower_bound(n)==n) printf("Yes\n"); else printf("No\n"); } return 0; }
相关文章推荐
- C++ 取得数组长度
- JS relearn note Ⅰ
- Struts2入门-Hello Word实例
- 为什么PreparedStatement execute执行插入成功却返回false
- 1033. To Fill or Not to Fill (25)
- 苹果开发 笔记(71)CoreData
- 2015第36周日每天进步1%
- 两个字符串是变位词
- HDU 5430 Reflect(欧拉函数)
- android学习之ListView的基本使用
- Note on <Professional SQL Server 2012 Internals And Troubleshooting> - 01
- 系统设计一:简易的搜索系统
- 乐观锁,悲观锁
- Hibernate 关系映射
- Lua 基本语法
- centos单用户 救援 运行级别 yum,单用户模式,救援模式,inittab :启动级别 e2fsck wetty mingetty 物理终端 /dev/console 虚拟终端 /dev/tty(0,6) 模拟终端 /dev/pts/# grub-md5-crypt 给grub加密码 initrd 第二节课
- Java第一周:1.16
- 当数据类型为long的变量后面没有L加会有什么后果
- CI_我的学习笔记
- 关于函数名与函数指针