求助大佬:去年提高D1T1格雷码,交上去有两个点MLE,该怎么处理呢
#include <bits/stdc++.h>
#define ll unsigned long long
using namespace std;
int n;
ll k;
void dfs(ll x,ll l,ll r,int t){
ll mid=l+r>>1;
if(l==mid && r==mid)return;
if(x<mid){
printf("%d",t);
dfs(x,l,mid,0);
}
else {
printf("%d",!t);
dfs(x,mid+1,r,1);
}
}
int main(){
scanf("%d %llu",&n,&k);
dfs(k,1,pow(2,n),0);
return 0;
}