牛客网 - [北京信息科技大学第十一届程序设计竞赛]kotori和出道(规律)
发布日期:2021-07-01 00:18:55 浏览次数:2 分类:技术文章

本文共 782 字,大约阅读时间需要 2 分钟。

题目链接:

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

kotori和一些偶像们围成一圈,一共有n个偶像(包括kotori自己),她们的序号顺时针从1到n。现在她们从1号开始进行顺时针报数:1,2,1,2,1……

每个报到2的人出列。直到剩下最后一个人为止。那么这个剩下的人就能被选中发专辑出道啦!
kotori可以暗箱操作决定自己的序号。她很想发专辑,于是向聪明的你求助,初始序号设定为多少才可以呢?

输入描述

第一行输入一个正整数t,代表共有t组样例。

第2行到第t+1行,每行一个正整数n,代表一次询问。
(1≤t≤10000,1≤n≤10^18)

输出描述

一共t行,每行一个正整数,代表kotori的初始序号。

输入

1

5

输出

3

说明

依次出列的序号是2,4,1,5,故3号胜出,可以发专辑。

解题思路

题意:约瑟夫环问题。

思路:数据过大不能用递归解决,打表找规律得2*(n-cnt)+1, 其中cnt为不大于n的最大2的整数幂。

Accepted Code:

#include 
using namespace std;typedef long long ll;int main() { int t; ll n; scanf("%d", &t); while (t--) { ll cnt = 1; scanf("%lld", &n); while (cnt << 1 <= n) cnt <<= 1; printf("%lld\n", ((n - cnt) << 1) + 1); } return 0;}

转载地址:https://lzyws739307453.blog.csdn.net/article/details/94549167 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:牛客网 - [北京信息科技大学第十一届程序设计竞赛]kotori和迷宫(BFS)
下一篇:牛客网 - [北京信息科技大学第十一届程序设计竞赛]kotori和气球(排列组合)

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月24日 20时38分50秒