题解 | #冰冰的异或#

冰冰的正多边形

https://ac.nowcoder.com/acm/contest/93218/A

实际上,这道题目很假,打表就可以

    for (int i = 1; i <= 11; i++) {
        for (int j = 1; j <= 11; j++) printf("%d ", i ^ j);
        puts("");
    }

打表之后发现两个规律 第一,形如10000...0这样的,不管怎么样都构造不出10000....0 因为要构造出1000...0当且仅当要和 异或起来,这做不到

第二,形如100..1(中间有额外的1)...0这样的,可以构造出从[1...(11111...1)]区间里面的任意数,因为最高位的那个1可以下放,而有多余的那个额外的1,保证了低位异或的每一位,都可以填0 或 1

综上所数,形如1000..0,答案是(1 << high)high表示最高位的那个1的位数 否则,答案是(1<< (high+1))

对于,特判

全部评论
哦哦,n=2的时候答案是1
点赞 回复 分享
发布于 2024-10-25 21:29 河南
为什么要特判1,2 啊,不就是1<<0,1<<1吗
点赞 回复 分享
发布于 2024-10-25 21:25 河南

相关推荐

mjasjon:这种trash中厂 简历过筛概率比大厂还低(除阿里系)
投递哔哩哔哩等公司6个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务