P5657 格雷码(2019年CSP第二轮提高组)题解

本文介绍了如何使用C++解决2019年CSP第二轮提高组中关于格雷码的问题。关键思路在于根据k的位置判断起始位是0还是1,然后通过递归搜索得出解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

读懂题于2020-11-04 22:40

80分于11-05 16:37

AC 于11-05 16:43

普及的题非常简单

思路:若k在前一半,则开头是0,反之开头是1,递归查找

#include <iostream>
#include <cmath>
#include <cstring>
#include <algorithm>

using namespace std;

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,2305843009213693952,2305843009213693952,230
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值