80分(3wa1mle,递归求助)
查看原帖
80分(3wa1mle,递归求助)
133116
Xhesika_Frost楼主2020/8/2 16:09
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
unsigned long long  k;
int n;
unsigned long long a=1;
void dfs(unsigned long long n,unsigned long long k){
	if(n==2){
		if(k==1)
		printf("0");
		else
		printf("1");
		return ;
	}
	if(k<=(n>>1)){
		printf("0");
		dfs(n>>1,k);
		return ;
	}else{
		printf("1");
		dfs(n>>1,n+1-k);
		return ;
	}
}
int main(){
	scanf("%d%ulld",&n,&k);
	k++;
	if(n==64)
	a=18446744073709551615;
	else
	for(int  i=n;i;--i){
		a*=(unsigned long long)2;
	}
	dfs(a,k);
	return 0;
} 
2020/8/2 16:09
加载中...