mirror of
https://github.com/Kiritow/OJ-Problems-Source.git
synced 2024-03-22 13:11:29 +08:00
Create 3561_huayunhualuo.cpp
From http://blog.csdn.net/huayunhualuo/article/details/51622867
This commit is contained in:
parent
f0e9ba9388
commit
59760891fb
80
SDUTOJ/3561_huayunhualuo.cpp
Normal file
80
SDUTOJ/3561_huayunhualuo.cpp
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
#include <bits/stdc++.h>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
typedef long long LL;
|
||||||
|
|
||||||
|
LL a[100];
|
||||||
|
|
||||||
|
LL b[40];
|
||||||
|
|
||||||
|
int ans;
|
||||||
|
|
||||||
|
void Init()
|
||||||
|
{
|
||||||
|
a[0] = 0;
|
||||||
|
|
||||||
|
a[1] = 1; a[2] = 2;
|
||||||
|
|
||||||
|
for(int i = 3;i<=47;i++)
|
||||||
|
{
|
||||||
|
a[i] = a[i-1]+a[i-2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool dfs(LL u,int st,int num)
|
||||||
|
{
|
||||||
|
if(u == 0)
|
||||||
|
{
|
||||||
|
ans = num;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(st == 0) return false;
|
||||||
|
|
||||||
|
for(int i = st;i>=1;i--)
|
||||||
|
{
|
||||||
|
if(u >= a[i])
|
||||||
|
{
|
||||||
|
b[num] = a[i];
|
||||||
|
|
||||||
|
if(dfs(u-a[i],i-1,num+1))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
Init();
|
||||||
|
|
||||||
|
int T;
|
||||||
|
|
||||||
|
LL n;
|
||||||
|
|
||||||
|
scanf("%d",&T);
|
||||||
|
|
||||||
|
while(T--)
|
||||||
|
{
|
||||||
|
scanf("%lld",&n);
|
||||||
|
|
||||||
|
if(dfs(n,47,0))
|
||||||
|
{
|
||||||
|
printf("%lld=",n);
|
||||||
|
|
||||||
|
for(int i = ans - 1;i >=0;i--)
|
||||||
|
{
|
||||||
|
if(i!=ans-1) printf("+");
|
||||||
|
|
||||||
|
printf("%lld",b[i]);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
else printf("-1\n");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user