竞赛
考级
:码代ca
注意开ULL!!! ∵k\because k∵k 的范围:264−12^{64}-1264−1 不需要看题目的方法,,, 只需要知道格雷码的定义即可。。。 思路:先转二进制,再转格雷码。
最水的一集 但是不开unsigned long long 见祖宗 其实就是一个转二进制的题目。 首先观察0~3的格雷码和对应数字的二进制 数字 0 1 2 3 格雷码 00 01 11 10 二进制 00 01 10 11 好像已经能看出一丝规律了 再看看0~7 数字 0 1 2 3 4 5 6 7 格雷码 000 001 011 010 110 111 101 100 二进制 000 001 010 011 100 101 110 111 规律已经呼之欲出了 没错,通过简单的观察发现 当原先数字第i位为1时,下一位取反(1变0,0变1) 于是就能愉快的写出正确代码了。
按题意模拟即可。可以使用左移快速计算出 2k2^k2k 的结果。 注意 long long 的范围是 [−263,263−1][-2^{63},2^{63}-1][−263,263−1],unsigned long long 的范围是 [0,264−1][0,2^{64}-1][0,264−1],2642^{64}264 他们两个都存不下,需要特判! 时间复杂度:O(n)O(n)O(n)。
提交答案之后,这里将显示提交结果~