95pts求助
查看原帖
95pts求助
590392
caiwen楼主2022/7/28 21:19
#include<iostream>
#define ull unsigned long long
using namespace std;

string ans;
void get(ull n,ull k){
	if(n==1){
		if(k==1) ans+="0";
		else ans+="1";
		return;
	}
	ull mid=(ull)1<<(n-1);
	if(k<=mid){
		ans+="0";
		get(n-1,k);
	}else{
		ans+="1";
		ull p1=k-mid;
		ull p2=mid+1-p1;
		get(n-1,p2);
	}
}

int main(){
	ull n,k;
	cin>>n>>k;
	k++;
	get(n,k);
	cout<<ans;
	return 0;
} 

最后一个点wa,看讨论区说是unsigned long long溢出,但我只最多左移63位啊

2022/7/28 21:19
加载中...