【BZOJ】【P3713】【PA2014】【Iloczyn】【题解】【水题】

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3713

水题不解释,注意0也是fib的倍数哦,(话说谁能告诉我PA是哪个OI??)

Code:

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int f[2333];
int T,n=2;
map<int,int>M;
int main(){
	f[1]=f[2]=1;M[1]=1;
	for(int i=3;;i++){
		f[i]=f[i-1]+f[i-2];
		if(f[i]<=int(1e9))n++,M[f[i]]=1;
		else break;
	}cin>>T;
	while(T--){
		int x,ok=0;
		cin>>x;if(x==0){puts("TAK");continue;}
		for(int i=2;i<=n;i++)
		if(x%f[i]==0&&M[x/f[i]]){
			puts("TAK");ok=1;break;
		}if(!ok)puts("NIE");		
	}
	return 0;
}


你可能感兴趣的:(bzoj)