首页 > TAG信息列表 > P5657

P5657 [CSP-S2019] 格雷码 (找规律)

观察几个数据,有一种思路:类似于二分,判断每一位应该填1还是0; 1 #include <bits/stdc++.h> 2 //#define loveGsy 3 using namespace std; 4 int n; 5 unsigned long long k, bk; 6 bool flag; 7 8 int main() { 9 #ifdef loveGsy 10 freopen("a.in", "r", std

洛谷 P5657 [CSP-S2019] 格雷码

题目 题目传送门 题解 n = 1时序列为 0 1 n = 2时序列为 00 01 11 10 n = 3时序列为 000 001 011 010 110 111 101 100 要求\(n\)位格雷码的第\(k\)个,按照题目方法构造即可 首先格雷码肯定是分为前一半跟后一半两个部分构造的。 假设\(k\)在\(n\)位格雷码的前一半,那么它的构造方式

P5657 [CSP-S2019] 格雷码

链接: P5657 分析: 签到题,不过也有不少细节。 数据范围需要开 unsigned long long ,前年也有很多人因此丢了5分。 pow 会出现神必错误,需要手写一个 mpow 函数。 算法: 我是记录当前的 \(l,r\) 判断 \(k\) 与 \(mid\) 的大小,然后分类讨论倒序和正序时选左边和选右边手玩的结论。变量

P5657 格雷码

题目如有乱码,请点击访问原题地址。 题目描述 通常,人们习惯将所有 nn 位二进制串按照字典序排列,例如所有 2 位二进制串按字典序从小到大排列为:00,01,10,11。 格雷码(Gray Code)是一种特殊的 nn 位二进制串排列法,它要求相邻的两个二进制串间恰好有一位不同,特别地,第一个串与最后一个

题解【P5657 格雷码】

CSP-S 2019 D1T1 考场上第一遍读题的时候感觉不是很一眼……不是很符合D1T1的气质 之前完全没听说过格雷码是什么玩意,还是我太菜了 仔细读题后发现应该是有规律可循的 赛后据说有$O(1)$算法,反正我不会 ------------ 思路分析 写出一些小位数的格雷码全排列,再根据格雷码的生成算法,