牛客网 - [北京信息科技大学第十一届程序设计竞赛]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:
#includeusing 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月24日 20时38分50秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
HP UNIX下aCC安装
2019-05-01
aCC 编译器编译选项
2019-05-01
cc 和gcc编译器
2019-05-01
gcc编译选项
2019-05-01
ps -aux 状态详解
2019-05-01
COFF 文件的格式
2019-05-01
linux 多线程条件变量
2019-05-01
手机数据抓包以及wireshark技巧
2019-05-01
利用正则表达式排除特定字符串
2019-05-01
如何修改文件中间的几个字节
2019-05-01
QT中QProcess调用命令行的痛苦经历
2019-05-01
Ubuntu阿里云搭建Mono.net环境
2019-05-01
将H264与AAC打包Ipad可播放的TS流的总结
2019-05-01
近半年的读书总结
2019-05-01
从RTSP协议SDP数据中获得二进制的SPS、PPS
2019-05-01
我总结的Android编程规范
2019-05-01
wireshark长时间抓包分多个文件
2019-05-01
我对计算机系统的理解
2019-05-01
QSS总结以及最近做的Qt项目
2019-05-01