比赛 20251026新安模拟赛2 评测结果 EEEEEEEEEEEEEEEEEEEE
题目名称 格雷码 最终得分 0
用户昵称 tomato的 运行时间 2.861 s
代码语言 C++ 内存使用 3.35 MiB
提交时间 2025-10-26 11:25:43
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long n, k, a[70] = {0};
int dg(int x, int y, int z){
	if(x == 1){
		int m = 0;
		for(int i = 1; i <= n; i++){
			m += 1 << a[i];
		}
		return m;
	}
	x /= 2;
	if(y <= x){
		z--;
		dg(x, y, z);
	}else{
		a[z] = z;
		z--;
		dg(1 << (x + 1) - k + 1, y, z);
	}
}
int main(){
	freopen("2019code.in", "r", stdin);
	freopen("2019code.out", "w", stdout);
	cin >> n >> k;
	int p = 1 << n;
	int sum = dg(p, k, n);
	vector <int> j;
	for(int i = 1; i <= n; i++){
		j[i] = sum % 2;
		sum /= 2;
	}
	for(int i = n; i >= 1; i--){
		cout << j[i];
	}
	return 0;
}