NC15979 小q的数列
NC15979 小q的数列
题目
题目描述
小q最近迷上了各种好玩的数列,这天,他发现了一个有趣的数列,其递推公式如下:
\left\{
\begin{array}{l}
0 ,& i = 0\\
1 ,& i=1\\
f[i/2]+f[i\%2],& i\geq 2
\end{array}
\right.
\]
现在,他想考考你,问:给你一个 \(n\) \((n<10^{18})\),代表数列的第 \(n\) 项,你能不能马上说出 \(f[n]\) 的值是多少,以及 \(f[n]\) 所代表的值第一次出现在数列的哪一项中?
输入描述
输入第一行一个 \(t\)
随后 \(t\) 行,每行一个数 \(n\) ,代表你需要求数列的第 \(n\) 项,和相应的 \(n'\)
\((t<4 \cdot 10^5)\)
输出描述
输出每行两个正整数
\(f[n]\) 和 \(n'\) ,以空格分隔
示例1
输入
2
0
1
输出
0 0
1 1
题解
思路
知识点:递归,思维。
按公式递归求值不难,接下来证明求最小 \(n'\)。
若把 \(n\) 看成二进制,公式可理解为 \(f[n>>1] + f[n\&1]\) ,即对于每位如果为 \(1\) 则加 \(1\) ,因此 \(f[n]\) 的结果是 \(n\) 二进制位为 \(1\) 的数量。那么一个数 \(n'\) , \(f[n']\)与 $f[n] $ 相同而且要最小,只要把 \(f[n]\) 个 \(1\) 从低位到高位排列,就能构造 \(n'\)。所以,\(n' = 2^{f[n]-1}\) 。
时间复杂度 \(O(\log n)\)
空间复杂度 \(O(1)\)
代码
#include <bits/stdc++.h>
using namespace std;
int f(long long n) {
if (n == 0 || n == 1) return n;
return f(n / 2) + f(n % 2);
}
int main() {
int t;
cin >> t;
while (t--) {
long long n;
cin >> n;
int ans = f(n);
cout << ans << ' ' << ((1LL << ans) - 1) << '\n';
}
return 0;
}
NC15979 小q的数列的更多相关文章
- 平面直接坐标系线段相交问题(小Q(钟神)的问题)
[问题描述] 小 Q 对计算几何有着浓厚的兴趣.他经常对着平面直角坐标系发呆,思考一些有趣的问题.今天,他想到了一个十分有意思的题目:首先,小 Q 会在?轴正半轴和?轴正半轴分别挑选?个点.随后,他将 ...
- hdu---(4515)小Q系列故事——世界上最遥远的距离(模拟题)
小Q系列故事——世界上最遥远的距离 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)T ...
- HD4505小Q系列故事——电梯里的爱情
Problem Description 细心的同事发现,小Q最近喜欢乘电梯上上下下,究其原因,也许只有小Q自己知道:在电梯里经常可以遇到他心中的女神HR. 电梯其实是个很暧昧的地方,只有在电梯里,小Q ...
- hdu4505小Q系列故事——电梯里的爱情
小Q系列故事——电梯里的爱情 Time Limit: 300/100 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tota ...
- HDU-4515 小Q系列故事——世界上最遥远的距离
小Q系列故事——世界上最遥远的距离 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) ...
- 2013腾讯编程马拉松初赛第二场(3月22日) 小Q系列故事——为什么时光不能倒流 ---好水!!
我以为我会是最坚强的那一个 我还是高估了自己 我以为你会是最无情的那一个 还是我贬低了自己 就算不能够在一起 我还是为你担心 就算你可能听不清 也代表我的心意 那北极星的眼泪 闪过你曾经的眼角迷离 那 ...
- HDU4530:小Q系列故事——大笨钟
Problem Description 饱尝情感苦恼的小Q本打算隐居一段时间,但仅仅在3月25号一天没有出现,就有很多朋友想念他,所以,他今天决定再出来一次,正式和大家做个告别. 小Q近来睡眠情况很差 ...
- 欢迎大家关注我的微信公众帐号小q机器人(xiaoqrobot)(转)
一个偶然的机会让我接触到了微信公众平台,赶紧加了几个交流群了解下相关情况,突然间发现好像全部的APP开发人员都在研究微信公众帐号的开发,而我显得有些落舞了.至于为什么热度会这么高,我想一个数字足以说明 ...
- HDU 4520 小Q系列故事——最佳裁判
Time Limit : 500/200ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Problem Description 过 ...
随机推荐
- switch语法
1. js 代码 // 1. switch 语句也是多分支语句 也可以实现多选1 // 2. 语法结构 switch 转换.开关 case 小例子或者选项的意思 // switch (表达式) { / ...
- CoAP调试工具 Mozi.IoT.CoAP
前言 CoAP是一种类HTTP协议的物联网专用协议,其数据包为人类不可阅读的字节流形式,在开发相关应用的时候往往不能准确的了解数据包的内容.故需要专用的调试工具对数据和通讯进行调试. CoAP协议介绍 ...
- MySQL进阶之表的增删改查
我的小站 修改表名 ALTER TABLE student RENAME TO stu; TO可以省略. ALTER TABLE 旧表名 RENAME 新表名; 此语句可以修改表的名称,其实一般我们在 ...
- 有意思的CVE-2022-0337复现
前言 前两天在刷tw,看到了个比较有意思的一个CVE漏洞,价值奖励是10000美刀,比较好奇的是价值10000美刀的漏洞是什么样子的,漏洞利用就是需要在浏览器中进行用户交互才能触发该漏洞,但由于 Wi ...
- Node爬取网站数据
npm安装cheerio和axios npm isntall cheerio npm install axios 利用cheerio抓取对应网站中的标签根据链接使用axios获取对应页面数据 cons ...
- Mysql基本操作语句 增-删-改-查
增 INSERT INTO 表名(属性名1,属性名2) VALUES(值1,值2) 删 DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子 ...
- ucore lab1 操作系统启动过程 学习笔记
开头赞美THU给我们提供了这么棒的资源.难是真的难,好也是真的好.这种广查资料,反复推敲,反复思考从通电后第一条代码搞起来理顺一个操作系统源码的感觉是真的爽. 1. 操作系统镜像文件ucore.img ...
- python中的sort用法
内置的列表类型提供sort的方法 可以根据多项指标给list实例中的元素排序.在默认情况下,sort方法总是按照自然升序排列列表内的元素 #升序排列 list1=[2,3,1,2,5] list1.s ...
- redo log 和 binlog 的一些总结
1 redo log 和 binlog 的区别 redo log 是 InnoDB 引擎特有的:binlog 是 MySQL 的 Server 层实现的,所有引擎都可以使用. redo log 是物理 ...
- 手脱UPX(3.91)
1.使用Detect It Easy进行查壳: 2.使用x32dbg打开该带壳程序,在选项->选项->异常中添加区间设置0~FFFFFFFF全忽略: 3.我们F9运行到程序入口处,看到了p ...