博客
关于我
【CSP - S T1】格雷码
阅读量:629 次
发布时间: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/

你可能感兴趣的文章
Python svm 支持向量机
查看>>
Flask与Django的区别
查看>>
python使用kafka收发消息
查看>>
iptables开放22、80端口,以及允许本机访问本机所有端口协议
查看>>
Docker之常用命令
查看>>
SAS进阶《深入分析SAS》之数据汇总和展现
查看>>
OpenStack 最小化安装配置(一):物理机网桥配置
查看>>
centos下sftp连接配置
查看>>
shell中将字符中换行符'\n'替换为空格
查看>>
Shell变量while循环内改变无法传递到循环外
查看>>
PS快速美白照片
查看>>
ubuntu 16.04 镜像下载
查看>>
CUDA9.1、cuDNN7在Ubuntu16.04上的安装
查看>>
Elasticsearch 搜索数据基本用法
查看>>
pip国内镜像(清华大学镜像)
查看>>
Spark之本地模式与集群模式
查看>>
shell for循环1到100
查看>>
怎么让百度知道你的网站(1)
查看>>
js 实现的计算器
查看>>
浅学C#(13)——运算符重载、隐式类型转换
查看>>