# NOIP2019_Day1T1_格雷码
题意:
位格雷码指有 个长度为 的01字符串的排列,且相邻两个字符串只有一位不同,例如:
1位格雷码:0,1
2位格雷码:00,01,11,10
3位格雷码:000,001,011,010,110,111,101,100
显然, 位格雷码的个数是 位格雷码个数的2倍
现有一种生成格雷码的算法:
规定一位格雷码为 1,0
位格雷码的前 个可由 位格雷码顺序排列,并在每个串的前面补上一个0得到
位格雷码的后 个可由 位格雷码逆序排列,并在每个串的前面补上一个1得到
那么问题来了,给定 ,求 位格雷码的第 个是多少?
解:
找规律,看看 和答案有什么关系
emm...貌似有点什么规律,但又说不清...
但是当你把 的0,1位与答案的0位比较————你会惊人的发现答案的0位恰巧等于 的0,1位异或结果!
同理,把 的1, 2位与答案的1位比较发现答案的1位恰等于 的1,2位异或结果
那么我们有了一个大胆的想法:把 整体向右移一位再与 本身异或,得出的就是结果!
至于是 位嘛,顺次输出结果的从 到0位就好了
代码:
所以就有了这令人惊叹的代码
*k一定要开ull,因为普通ll最大只能记录 ,但是k要求最大到
__EOF__

本文作者:熹圜
本文链接:https://www.cnblogs.com/Xiwon/p/13402228.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/Xiwon/p/13402228.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)