【BestCoder】 HDOJ 5167 Fibonacci
2015-02-01 11:17
316 查看
用贪心怎么做都是有反例的。。。。用搜索做不加剪枝会TLE的。。。用set打出所有可能的数就行了。。。
#include <iostream> #include <queue> #include <stack> #include <map> #include <set> #include <bitset> #include <cstdio> #include <algorithm> #include <cstring> #include <climits> #include <cstdlib> #include <cmath> #include <time.h> #define maxn 200005 #define maxm 200005 #define eps 1e-10 #define mod 1000000007 #define INF 0x3f3f3f3f #define PI (acos(-1.0)) #define lowbit(x) (x&(-x)) #define mp make_pair #define ls o<<1 #define rs o<<1 | 1 #define lson o<<1, L, mid #define rson o<<1 | 1, mid+1, R #define pii pair<int, int> #pragma comment(linker, "/STACK:16777216") typedef long long LL; typedef unsigned long long ULL; //typedef int LL; using namespace std; LL qpow(LL a, LL b){LL res=1,base=a;while(b){if(b%2)res=res*base;base=base*base;b/=2;}return res;} LL powmod(LL a, LL b){LL res=1,base=a;while(b){if(b%2)res=res*base%mod;base=base*base%mod;b/=2;}return res;} // head int a[maxn]; int n, cnt; set<int> s; void init() { a[0] = 0; a[1] = 1; for(int i = 2; i <= 50; i++) { a[i] = a[i-1] + a[i-2]; if(a[i] > 1000000000) { cnt = i; break; } } s.insert(1); for(set<int>::iterator it = s.begin(); it != s.end(); it++) { int t = (*it); for(int i = 3; i < cnt; i++) { if((LL)t * a[i] > 1000000000) continue; else s.insert(t * a[i]); } } } void work() { int x; scanf("%d", &x); if(x == 0 || s.find(x) != s.end()) printf("Yes\n"); else printf("No\n"); } int main() { init(); int _; while(scanf("%d", &_)!=EOF) { while(_--) { work(); }
相关文章推荐
- 【BestCoder】 HDOJ 5018 Revenge of Fibonacci
- 【BestCoder】 HDOJ 5162 Jump and Jump...
- 【BestCoder】 HDOJ 5020 Revenge of Collinearity
- 【BestCoder】 HDOJ 5057 Argestes and Sequence
- 【BestCoder】 HDOJ 5110 Alexandra and COS
- 【BestCoder】 HDOJ 5163 Taking Bus
- 【BestCoder】 HDOJ Revenge of LIS II
- 【BestCoder】 HDOJ 5101 Select
- 【HDOJ】5996(BestCoder #90 B)dingyeye loves stone
- 【BestCoder】 HDOJ 5102 The K-th Distance
- hdoj-5167-Fibonacci
- 【BestCoder】 HDOJ 5067 Harry And Dig Machine
- HDOJ 4908 - BestCoder Sequence 简单统计
- BestCoder Round #75 T3 King's Order HDOJ 5642
- 【BestCoder】 HDOJ 5225 Tom and permutation
- hdu 5018 Revenge of Fibonacci(BestCoder Round #10)
- 【BestCoder】 HDOJ 5103 RootedTree
- 【BestCoder】HDOJ 5062 Beautiful Palindrome Number
- 【BestCoder】 HDOJ 5233 Gunner II
- 【BestCoder】 HDOJ 5055 Bob and math problem