mirror of
https://github.com/Kiritow/OJ-Problems-Source.git
synced 2024-03-22 13:11:29 +08:00
Create 3561.cpp
Goddamn SDUT OJ!!! Why not notify OIers use %lld instead of %I64d for long long ????!!!! GOD DAMNNNNNNN IT!
This commit is contained in:
parent
59760891fb
commit
5726fbeb71
68
SDUTOJ/3561.cpp
Normal file
68
SDUTOJ/3561.cpp
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
#include <cstdio>
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <cstring>
|
||||||
|
#include <vector>
|
||||||
|
using namespace std;
|
||||||
|
typedef long long LL;
|
||||||
|
|
||||||
|
LL a[50];
|
||||||
|
LL b[50];
|
||||||
|
|
||||||
|
/// Print Table
|
||||||
|
void init()
|
||||||
|
{
|
||||||
|
a[0]=1;
|
||||||
|
a[1]=2;
|
||||||
|
for(int i=2;i<48;i++)
|
||||||
|
{
|
||||||
|
a[i]=a[i-1]+a[i-2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int _ans;
|
||||||
|
int dfs(LL cVal,int cidx,int bidx)
|
||||||
|
{
|
||||||
|
if(cVal==0)
|
||||||
|
{
|
||||||
|
_ans=bidx;return 1;
|
||||||
|
}
|
||||||
|
if(cidx==-1) return 0;
|
||||||
|
for(int i=cidx;i>=0;i--)
|
||||||
|
{
|
||||||
|
if(cVal>=a[i])
|
||||||
|
{
|
||||||
|
b[bidx]=a[i];
|
||||||
|
int ret=dfs(cVal-a[i],i-1,bidx+1);
|
||||||
|
if(ret) return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
init();
|
||||||
|
int n;
|
||||||
|
scanf("%d",&n);
|
||||||
|
LL t;
|
||||||
|
for(int cc=0;cc<n;cc++)
|
||||||
|
{
|
||||||
|
scanf("%lld",&t);
|
||||||
|
|
||||||
|
int ret=dfs(t,47,0);
|
||||||
|
if(ret)
|
||||||
|
{
|
||||||
|
printf("%lld=",t);
|
||||||
|
for(int i=_ans-1;i>0;i--)
|
||||||
|
{
|
||||||
|
printf("%lld+",b[i]);
|
||||||
|
}
|
||||||
|
printf("%lld\n",b[0]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("-1\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user