题解 | 完美异或

完美异或

https://www.nowcoder.com/practice/df2d0b1e250b4995a7cda77bf1065cf1

这道题最快速的方法就是利用0异或任何数都不会改变任何数的值的性质(0 ^ a = a),得到(n-1)个0异或n = n,n%n=0,所以数组只需要前n-1个数为0,第n个数为1即可解题

本人在这里给出自己的方法,虽然很拙笨,但也是自己亲自探索出来的规律(一般通过率高的题都有规律可以利用):

        规律:对于n为奇数,一种答案是最后一个元素必等于n,然后前n-1个元素全部取n-1即可(n-1是个偶数,偶数个相同的数进行异或,同归于尽,a^a = 0),最后0^n=n(其实我在想到这里的时候就能和其他题解思路殊途同归)

        对于n为偶数

当n=4, 最后两个元素取:3 5 得011^101=110=4; 4%4=0

        当n=6,最后两个元素取:5 7 得101^111=010=2; 6%2=0

        当n=8,最后两个元素取:7 9 得0111^1001=1110=12; 8%12!=0

        此番探索虽然不能证明对于n为偶数时:让最后两个元素直接取n-1,n+1,前面n-2(偶数)个元素取n-2就是答案,

        但是能够证明奇数和奇数相异或,结果必为偶数。

        那么我们只需要让前n-2个元素为0(0^0=0),最后两个元素为1,3就能处理n为偶数的情况

#include <ios>
#include <iostream>
using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int T;
    cin >> T;
    while (T--) {
        int n;
        cin >> n;
        if (n%2!=0) { // n为奇数
            for (int i = 0; i < n-1; i++) {
                cout << n-1 << " ";
            }// 前n-1项全输出n-1
            cout << n << '\n';
        }
        else { // n为偶数
            for (int i = 0; i < n-2; i++) {
                cout << 0 << " ";
            }
            cout << 1 << " " << 3 << '\n';
        }
    }
}

全部评论

相关推荐

03-02 08:18
集美大学 Java
钱嘛数字而已:没有赛事奖项么?另外,项目经历字有点多哈,建议突出一下重点:用的什么技术,解决什么问题,达到什么效果。
大家都开始春招面试了吗
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
11099次浏览 95人参与
# 你的实习产出是真实的还是包装的? #
1960次浏览 42人参与
# MiniMax求职进展汇总 #
24122次浏览 309人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7644次浏览 43人参与
# 简历第一个项目做什么 #
31750次浏览 341人参与
# 重来一次,我还会选择这个专业吗 #
433557次浏览 3926人参与
# 巨人网络春招 #
11372次浏览 223人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187217次浏览 1122人参与
# 牛客AI文生图 #
21452次浏览 238人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152461次浏览 888人参与
# 研究所笔面经互助 #
118967次浏览 577人参与
# 简历中的项目经历要怎么写? #
310376次浏览 4219人参与
# AI时代,哪些岗位最容易被淘汰 #
63853次浏览 828人参与
# 面试紧张时你会有什么表现? #
30516次浏览 188人参与
# 你今年的平均薪资是多少? #
213147次浏览 1039人参与
# 你怎么看待AI面试 #
180154次浏览 1258人参与
# 高学历就一定能找到好工作吗? #
64334次浏览 620人参与
# 你最满意的offer薪资是哪家公司? #
76547次浏览 374人参与
# 我的求职精神状态 #
448145次浏览 3129人参与
# 正在春招的你,也参与了去年秋招吗? #
363530次浏览 2638人参与
# 腾讯音乐求职进展汇总 #
160683次浏览 1112人参与
# 校招笔试 #
471238次浏览 2964人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务