蒟蒻10pts+样例未过求条!!!
查看原帖
蒟蒻10pts+样例未过求条!!!
1140231
ChangeYuAN楼主2024/7/20 19:13

思路是二分

#include<bits/stdc++.h>
using namespace std;
long long n,k;

signed main(){
	scanf("%d%d",&n,&k);
	long long l=0,r=(1<<n);
	k++;
	bool cur=0; //0在左边,1在右边
	for(int i=1;i<=n;i++){
		long long mid=(l+r)>>1;
		if(!cur){//在左边 
			if(k>mid){//在右边 
				cout<<1;
				l=mid+1;
				cur=!cur;
			}else{
				cout<<0;
				r=mid;
				cur=!cur;
			}
			
		}else{
			if(k>mid){
				cout<<0;
				l=mid+1;
				cur=!cur;
			}else{
				cout<<1;
				r=mid;
				cur=!cur;
			}
		}
	}
	return 0;
}
2024/7/20 19:13
加载中...