首页 > 编程语言 > 详细

2021“MINIEYE杯”中国大学生算法设计超级联赛(1)1001 Mod, Or and Everything

时间:2021-07-28 14:11:48      阅读:9      评论:0      收藏:0      [点我收藏+]

https://acm.hdu.edu.cn/contests/contest_showproblem.php?cid=984&pid=1001

题意:
给出\(n\),求 \(OR_{i=1}^n (n\) \(mod\) \(i)\)

题解:
\(i>n/2\)时,\(n\) \(mod\) \(i\) \(=\) \(n\) \(-\) \(i\)
所以原式 = \(1|2|3|4|5……(n-1)/2\)
因为是连续自然数的或运算,找到最接近的\(2^m-1\)就是答案

#include<cstdio>

int main()
{
    int T;
    long long n,m,b;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%lld",&n);
        m=n+1>>1;
        m--;
        b=1;
        while(m>=b) b<<=1;
        printf("%lld\n",b-1);
    }
}

2021“MINIEYE杯”中国大学生算法设计超级联赛(1)1001 Mod, Or and Everything

原文:https://www.cnblogs.com/TheRoadToTheGold/p/15069997.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!