CSP-S2 2019 D1T1

考场上第一遍读题的时候感觉不是很一眼……不是很符合D1T1的气质

之前完全没听说过格雷码是什么玩意,还是我太菜了

仔细读题后发现应该是有规律可循的

赛后据说有$O(1)$算法,反正我不会


思路分析

写出一些小位数的格雷码全排列,再根据格雷码的生成算法,可以有以下算法:

1. 对于$x$位第$k$个格雷码,若$k\geq2^{x-1}$,则显然该格雷码是由$x-1$位的第$2^{x-1}-(k-2^{x-1}+1)=2^x-k-1$个格雷码前面加上一个1得来的;否则,该格雷码是由$x-1$位的第$k$个格雷码前面加上一个0得来的
1. 重复步骤1,直到$x=0$。

具体实现

模拟即可,可以边模拟边输出。

看一眼数据范围,特地提示了$5$分的$unsigned$ $long$ $long$。。。所以记得开

求幂的时候也要注意精度问题,可以使用快速幂

#include<iostream>
#include<cstdio>
#define ull unsigned long long
using namespace std;
int n;
ull k;
ull fastpow(ull a,ull b)
{
ull ans=;
while(b)
{
if(b&)
ans*=a;
b>>=;
a*=a;
}
return ans;
}
int main()
{
scanf("%d",&n);cin>>k;
for(int i=n-;i>=;i--)
{
ull now=fastpow(,i);
if(k<now)
printf("");
else
printf(""),k=*now-k-;
}
return ;
}

最新文章

  1. HashMap和SparseArray的性能比较。
  2. css的小技巧
  3. Python入门笔记(11):集合
  4. 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))
  5. Android 查看webview里面的图片
  6. 最基本的Unix系统操作命令
  7. HW6.12
  8. Static File Middleware
  9. HTML5 QQ登录背景动态图片
  10. 使用测试思路快速学习Python-适合测试工程师的学习方法
  11. ios-改变图片的尺寸
  12. [译]React 在服务端渲染的实现
  13. magento开发手册之目录结构
  14. xamarin自定义 application 无法调试
  15. jmap查看内存使用情况与生成heapdump
  16. JS在不同js文件中互相调用
  17. Python学习之路:MINST实战第一版
  18. QT学习笔记4:QT中GraphicsView编程
  19. haproxy入门 (作用: 高可用性,负载平衡和用于TCP和基于http的应用程序的代理)
  20. Node.js基本使用(超基础)

热门文章

  1. PHP stripos() 函数
  2. PHP chop() 函数
  3. log4net用法实例
  4. 《Spanner: Google’s Globally-Distributed Database》论文总结
  5. [学习笔记] Numpy基础 系统学习
  6. java 静态导入、可变参数、集合嵌套
  7. C#LeetCode刷题之#171-Excel表列序号(Excel Sheet Column Number)
  8. 免费深度学习GPU,Google Yes!
  9. Mac中的垃圾文件的清理
  10. 记一次mysql数据库被勒索(中)