[CSP-S2019] 格雷码

[CSP-S2019] 格雷码

题目描述

通常,人们习惯将所有 n n n 位二进制串按照字典序排列,例如所有 2 位二进制串按字典序从小到大排列为:00,01,10,11。

格雷码(Gray Code)是一种特殊的 n n n 位二进制串排列法,它要求相邻的两个二进制串间恰好有一位不同,特别地,第一个串与最后一个串也算作相邻。

所有 2 位二进制串按格雷码排列的一个例子为:00,01,11,10。

n n n 位格雷码不止一种,下面给出其中一种格雷码的生成算法:

  1. 1 位格雷码由两个 1 位二进制串组成,顺序为:0,1。
  2. n + 1 n + 1 n+1 位格雷码的前 2 n 2^n 2n 个二进制串,可以由依此算法生成的 n n n 位格雷码(总共 2 n 2^n 2n n n n 位二进制串)按顺序排列,再在每个串前加一个前缀 0 构成。
  3. n + 1 n + 1 n+1 位格雷码的后 2 n 2^n 2n 个二进制串,可以由依此算法生成的 n n n 位格雷码(总共 2 n 2^n 2n n n n 位二进制串)按逆序排列,再在每个串前加一个前缀 1 构成。

综上, n + 1 n + 1 n+1 位格雷码,由 n n n 位格雷码的 2 n 2^n 2n 个二进制串按顺序排列再加前缀 0,和按逆序排列再加前缀 1 构成,共 2 n + 1 2^{n+1} 2n+1 个二进制串。另外,对于 n n n 位格雷码中的 2 n 2^n 2n 个 二进制串,我们按上述算法得到的排列顺序将它们从 0 ∼ 2 n − 1 0 \sim 2^n - 1 02n1 编号。

按该算法,2 位格雷码可以这样推出:

  1. 已知 1 位格雷码为 0,1。
  2. 前两个格雷码为 00,01。后两个格雷码为 11,10。合并得到 00,01,11,10,编号依次为 0 ~ 3。

同理,3 位格雷码可以这样推出:

  1. 已知 2 位格雷码为:00,01,11,10。
  2. 前四个格雷码为:000,001,011,010。后四个格雷码为:110,111,101,100。合并得到:000,001,011,010,110,111,101,100,编号依次为 0 ~ 7。

现在给出 n n n k k k,请你求出按上述算法生成的 n n n 位格雷码中的 k k k 号二进制串。

输入格式

仅一行两个整数 n n n k k k,意义见题目描述。

输出格式

仅一行一个 n n n 位二进制串表示答案。

样例 #1

样例输入 #1

2 3

样例输出 #1

10

样例 #2

样例输入 #2

3 5

样例输出 #2

111

样例 #3

样例输入 #3

44 1145141919810

样例输出 #3

00011000111111010000001001001000000001100011

提示

【样例 1 解释】

2 位格雷码为:00,01,11,10,编号从 0∼3,因此 3 号串是 10。

【样例 2 解释】

3 位格雷码为:000,001,011,010,110,111,101,100,编号从 0∼7,因此 5 号串是 111。

【数据范围】

对于 50 % 50\% 50% 的数据: n ≤ 10 n \leq 10 n10

对于 80 % 80\% 80% 的数据: k ≤ 5 × 1 0 6 k \leq 5 \times 10^6 k5×106

对于 95 % 95\% 95% 的数据: k ≤ 2 63 − 1 k \leq 2^{63} - 1 k2631

对于 100 % 100\% 100% 的数据: 1 ≤ n ≤ 64 1 \leq n \leq 64 1n64, 0 ≤ k < 2 n 0 \leq k \lt 2^n 0k<2n

#include<bits/stdc++.h>
using namespace std;
unsigned long long n,k;
unsigned long long a[70]= {1,2,4,8,16,32,64,
           					128,256,512,1024,2048,4096,
           					8192,16384,32768,65536,131072,262144,
           					524288,1048576,2097152,4194304,8388608,16777216,
           					33554432,67108864,134217728,268435456,536870912,1073741824,
           					2147483648,4294967296,8589934592,17179869184,34359738368,68719476736,
           					137438953472,274877906944,549755813888,1099511627776,2199023255552,4398046511104,
           					8796093022208,17592186044416,35184372088832,70368744177664,140737488355328,281474976710656,
           					562949953421312,1125899906842624,2251799813685248,4503599627370496,9007199254740992,18014398509481984,
           					36028797018963968,72057594037927936,144115188075855872,288230376151711744,576460752303423488,1152921504606846976,
           					2305843009213693952,4611686018427387904,9223372036854775808
          					};
int main()
{
	cin>>n>>k;
	for(int i=n;i>=1;i--)
	{
		unsigned long long mid=(a[i]-1)/2;
		if(k<=mid)
		{
			printf("0");
		}
		else
		{
			printf("1");
			k=a[i]-1-k;
		}
	}
	
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/279297.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的固定帧率(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的固定帧率&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机的固定帧率功能的技术背景CameraExplorer如何查看相机固定帧率功能在NEOAPI SDK里通过函数设置相机固定帧率 Baumer工业相机通过NEOAPI SDK设置相机固…

Scrapy使用案例——爬取豆瓣Top 250电影数据

文章目录 什么是Scrapy&#xff1f;创建Scrapy项目编写Scrapy Spider创建Item类配置数据存储运行Scrapy爬虫处理常见问题结论Python技术资源分享1、Python所有方向的学习路线2、学习软件3、入门学习视频4、实战案例5、清华编程大佬出品《漫画看学Python》6、Python副业兼职与全…

用通俗易懂的方式讲解大模型:使用 FastChat 部署 LLM 的体验太爽了

之前介绍了Langchain-Chatchat 项目的部署&#xff0c;该项目底层改用了 FastChat 来提供 LLM(大语言模型)的 API 服务。 出于好奇又研究了一下 FastChat&#xff0c;发现它的功能很强大&#xff0c;可以用来部署市面上大部分的 LLM 模型&#xff0c;可以将 LLM 部署为带有标准…

Sensor Demosaic IP 手册PG286笔记

《 UG1449 Multimedia User Guide》中包含了大量的多媒体IP简介。 本IP 用于对bayer RGB&#xff08;每个pixel只有单个R/G/B&#xff09;做去马赛克处理&#xff0c;恢复成每个pixel点都有完整的RGB值。通过axi接口配置IP内部erg。 1、算法手册中的描述 提到了几种插值算法&…

IPD-PDP产品开发流程-PDT产品开发计划Charter文档模板(word)3

今天继续为家分享PDT的产品开发计划Charter模板的内容。 Charter任务书模板内容7&#xff1a;人力资源和技能需求 在这一部分&#xff0c;列出项目在不同阶段所需要的不同人力资源需求、数量、能力要求&#xff0c;以及对于一些特殊人力资源的需求。 7.1不同阶段的人力资源汇…

QT上位机开发(乘法计算小软件)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面一篇文章&#xff0c;我们学习了怎么创建qt的第一个工程&#xff0c;怎么用designer给qt修改界面。虽然我们到目前为止&#xff0c;还没有编写…

雪花旅游网的前端html模板推荐

一、需求获取 该网站是一个社交网络平台&#xff0c;也是一个提供旅行攻略、游记、景点介绍、交通信息等旅行相关内容的网站。它为用户提供了丰富的旅行信息&#xff0c;包括国内外的旅游目的地、景点推荐、旅行攻略、游记分享等。用户可以在该网站上查找各地的旅游信息&#…

静物摄影在UE5里运用几点记要

被摄体&#xff0c;相机与光源的关系&#xff0c;要增强立体感&#xff0c;摄像机与光源的位置关系要错开&#xff1b;b的立体感要更强 漫反射与点光源&#xff0c;UE5太阳光属于漫反射&#xff0c;整体比较柔和&#xff0c;但是阴影处比较黑&#xff1b;摄影棚会用反光板来增亮…

使用LOTR合并检索提高RAG性能

RAG结合了两个关键元素:检索和生成。它首先使用语义搜索等高级技术来浏览大量数据&#xff0c;包括文本、图像、音频和视频。RAG的本质在于它能够检索相关信息&#xff0c;然后作为下一阶段的基础。生成组件利用大型语言模型的能力&#xff0c;解释这些数据块&#xff0c;制作连…

三个故事,谈谈小米汽车技术发布会

都说新年新气象&#xff0c;随着年末消费旺季到来&#xff0c;汽车市场越来越热闹了。 继蔚来12月23日公布旗舰车型ET9&#xff0c;华为26日发布问界M9&#xff0c;小米汽车首款量产车型SU7终于正式亮相。 12月28日&#xff0c;在小米汽车技术发布会上&#xff0c;小米创办人…

AIGC与计算机技术:人工智能生成内容的深度探索

AIGC与计算机技术&#xff1a;人工智能生成内容的深度探索 摘要&#xff1a;随着人工智能技术的快速发展&#xff0c;AIGC&#xff08;人工智能生成内容&#xff09;成为了计算机领域的前沿话题。本文将详细探讨AIGC的基本原理、技术应用和未来发展趋势&#xff0c;以及它对计…

【AIGC表情prompt】提示词练习技巧

表情类提示词练习技巧 医疗机器人&#xff0c;男人笑脸景深&#xff0c;数据&#xff0c;座标&#xff0c;12k,c4d渲染&#xff0c;高分辨率&#xff0c;,暖色调&#xff0c;高清对比 医疗机器人&#xff0c;男人微笑&#xff0c;景深&#xff0c;数据&#xff0c;座标&#xf…

nodejs+vue+微信小程序+python+PHP的药品销售管理系统的设计与实现-计算机毕业设计推荐

然后分析系统需要实现的功能并进行设计。梳理业务流程&#xff0c;并根据功能设计数据库&#xff0c;最后通过编码实现&#xff0c;药店药品出库入库管理&#xff1a;登记药店药品销售情况&#xff0c;记录药店药品出入库管理。能更好的掌握药品的一个销售情况&#xff0c;利于…

Python新手教程 —— Hello, World!

文章目录 Hello, World!作者自述关于本系列什么是编程语言什么是Python安装Python运行Python3解释器IDLE编写代码文件 本文复习Python技术资源分享1、Python所有方向的学习路线2、学习软件3、入门学习视频4、实战案例5、清华编程大佬出品《漫画看学Python》6、Python副业兼职与…

Java集合/泛型篇----第一篇

系列文章目录 文章目录 系列文章目录前言一、ArrayList和linkedList的区别二、HashMap和HashTable的区别三、Collection包结构,与Collections的区别四、泛型常用特点前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站…

EMQX开启MongoDB接入认证与订阅发布鉴权

背景 关于物联网平台设计一个最佳实践是&#xff1a;对接入平台的设备进行认证&#xff0c;并且对设备可以发布和订阅的主题进行权限控制。 MQTT Broker 开启对接入设备的认证与订阅发布鉴权的意义在于增强系统的安全性。通过认证&#xff0c;可以确保只有经过授权的设备可以连…

【IEEE解刊】IF4.4实力强劲,国人占比第一,好投吗?(附中科院高分区快刊)

计算机类 • 好刊解读 今天小编带来IEEE旗下计算机领域高分好刊&#xff0c;如您有投稿需求&#xff0c;可作为重点关注&#xff01;后文有相关领域真实发表案例&#xff0c;供您投稿参考~ 01 期刊简介 IEEE Systems Journal ✅出版社&#xff1a;IEEE ✅ISSN&#xff1a;1…

【Bootstrap学习 day4】

Bootstrap5 列表组 使用Bootstrap创建列表 可以创建三种不类型的HTML列表&#xff1a; 无序列表—顺序无关紧要的项目列表。无序列表中的列表标有项目符号&#xff0c;例如。、等ul>li有序列表—顺序确实很重要的项目列表。有序列表中的列表项用数字标记&#xff0c;例如1、…

docker重量级容器预警监控系统CIG

文章目录 一、介绍CIG二、CIG&#xff0c;compose部署2.1 docker-compose运行CIG2.2 grafana配置1.配置数据源2.选择influxdb数据源3.配置数据库的连接信息4.create dashboard5.配置数据源6.大功告成 一、介绍CIG C:CAdvisor&#xff0c;监控收集&#xff0c;默认存储最近2分钟…

MYSQL的UPDATE时锁表机制

&#xff08;笔记&#xff0c;只为获取流量券&#xff09; MySQL中&#xff0c;UPDATE 操作涉及到行级锁和表级锁的概念&#xff0c;具体取决于事务隔离级别和被更新的条件, 无索引的情况下&#xff1a; 当表没有索引的情况下&#xff0c;UPDATE 操作通常会涉及到表级锁。这是…
最新文章