题解 | #冰冰的异或#

冰冰的正多边形

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))

对于,特判

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

相关推荐

2024-12-25 09:09
四川师范大学 运营
想和你交朋友的潜伏者要冲国企:先去沃尔玛亲身感受标准化流程体系,一两年后再跳槽国内任何零售行业,可以有更大选择权吧?
点赞 评论 收藏
分享
2024-12-18 14:13
蚌埠坦克学院 golang
苏州科技大学:面试官:接个面试,对面同学是个杀软二次元
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务