exam8.3
Posted ooovooo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了exam8.3相关的知识,希望对你有一定的参考价值。
rank25凉凉好吧。。。。。。
T1:。。。
一开始完全**
手玩给的那张图(不放图,我太饿把图吃了)
发现对于任一个节点,减去上一个比他小的斐波那契数就是父节点,
于是,欢乐敲代码(话说别人好像是二分查找,而我直接打表+lower_bound,<algorithm>大法好)
过编译,于是……
样例死了。绝望.png
一个小时后,过了。
结果MLE80好吧。
代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
#define int long long
#define cin(a) scanf("%lld",&a)
#define cout1(a) printf("%lld\n",a)
#define cout2(a) printf("%lld ",a)
int a[65]=1,1;
int f[600050][65];
int m,n;
void pre()
for(int q=2;q<=64;q++)
a[q]=a[q-1]+a[q-2];
int tot;
int work(int x,int y)
if(x==y)
return x;
int dx,dy;
int tx=x,ty=y;
int k1=++tot,k2=++tot;
f[k1][0]=x,f[k2][0]=y;
for(int q=1;;q++)
if(tx==1)
dx=q;
break;
int l=lower_bound(a+1,a+64,tx)-a;
if(tx<=a[l]) --l;
f[k1][q]=tx-a[l];
tx-=a[l];
for(int q=1;;q++)
if(ty==1)
dy=q;
break;
int l=lower_bound