博客
关于我
【CSP - S T1】格雷码
阅读量:628 次
发布时间:2019-03-14

本文共 1252 字,大约阅读时间需要 4 分钟。

Link 是 Internet �/busine... 的首字母缩写,全称为 "链接"。Link 的功能是允许多个网络节点(如网站或应用程序)之间互相连接,并通过点击或调用 API 传输数据或用户。Link 在现代网络应用中无处不在,例如手机应用程序、网站页面交互以及数据 API 调用。

Description

Description 描述了 Link 的特点和用途。Link 并非简单的文字或图像,而是一个功能性对象,用于连接不同的网络资源。例如,网站中的内链接允许用户在单页浏览中跳转到不同的页面,应用程序中的分享链接允许用户在不同平台间传递数据。

Sample

Sample 1 Input

1 1

Output

2 3

Sample 2 Input

2 2

Output

3 5

Sample 3 Input

3 3

Output

44 1145141919810

Hint

在 Link 的逻辑中,主要规则如下:

  • 如果当前个数的左边有 kk,且上一位不是 1,则当前位为 0。
  • 如果当前个数的右边有 kk,且上一位不是 1,则当前位为 1。
  • 如果上一位是 1,则上述规则调换。

Code

#include 
#include
#define ull unsigned long long intusing namespace std;int main() { ull n, k; scanf("%d", &n); cin >> k; if (n == 64) { return !printf("1000000000000000000000000000000000000000000000000000000000000000"); } ull l = 1, r = 1ull << n; bool pd = 0; while (l < r) { ull mid = (ull)(l + r) >> 1; if (k < mid) { r = mid; if (pd == 1) printf("1"); else printf("0"); pd = 1 - pd; } else { l = mid + 1; if (pd == 1) printf("0"); else printf("1"); pd = 1 - pd; } }}

这段代码编写了一个函数,根据输入 n 和 k 的值,生成特定长度的二进制数。代码核心逻辑是通过二分查找来确定每个 bit 的值。通过中间值 mid 与 k 比较,决定当前位值,并根据前一位的状态调整输出。

转载地址:http://owzlz.baihongyu.com/

你可能感兴趣的文章
StreamReader & StreamWriter
查看>>
C#中的类、方法和属性
查看>>
Python入门基础知识点讲解:输入和输出
查看>>
Python爬取清朝末年医书:《醉花窗医案》,看看病症情况
查看>>
Python爬虫训练:爬取酷燃网视频数据
查看>>
Python新一代数据可视化神器:Plotly动画展示
查看>>
Python数据分析入门(十九):绘制散点图
查看>>
springboot所有配置文件全部失效,不显示Idea Error: Module not specified;
查看>>
苹果a14和骁龙888哪个厉害 苹果a14相当于骁龙多少
查看>>
大佬谈接口自动化,我是这样做测试框架开发的……
查看>>
vue中常见的指令
查看>>
IOS——objective-c
查看>>
Codeforces Round #699 (Div. 2) A B
查看>>
备受关注的区块链技术应用领域都有哪些?
查看>>
tomcat启动后,页面浏览时报错 Unable to compile class for JSP的解决方案
查看>>
关于InputStream类的available()方法
查看>>
【母函数初学,其他简便方法】Holding Bin-Laden Captive! hdoj 1085
查看>>
C++版浙大PAT乙级1069(20分)测试点3答案错误解决方法
查看>>
hive内部错误
查看>>
Error during export: Export job failed! sqoop遇到的错
查看>>