这题我的代码开了o2AC,不开o2只有10pts,大佬求调。
#include <bits/stdc++.h>
# define int unsigned long long
using namespace std;
string dfs(int n, int k)
{
if(n == 1 && k == 0) return "0";
if(n == 1 && k == 1) return "1";
int maxn = 1ll << (n - 1);
if(k < maxn) return "0" + dfs(n - 1, k);
if(maxn >= k) return "1" + dfs(n - 1, maxn - 1 + maxn - k);
}
int a, b;
signed main()
{
cin >> a >> b;
cout << dfs(a, b);
return 0;
}