1 条题解

  • 0
    @ 2025-8-24 22:43:02

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar VitrelosTia
    What you want, What you do ?

    搬运于2025-08-24 22:43:02,当前版本为作者最后更新于2022-11-09 17:20:16,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    题链:P8845 [传智杯 #4 初赛] 小卡和质数

    题意

    给你 xxyy,问第 xx 个质数和第 yy 个质数的异或值是否为 11

    思路

    怎么样的两个数异或值为 11 呢?显然是二进制下只有末尾不同的数,要满足这个条件,需要两数奇偶性不同(思考这个条件是因为考虑到质数特殊的奇偶性质),则两个质数为一奇一偶。

    偶数中只有 22 是质数,而易知在其它质数中,只有 3322 的异或值为 11。最终得到:两个质数只能是 3322

    upd(2025.4.1):为什么只有 33 呢,因为 (10)2=2(10)_2=2,而如果另一个数二进制下有多于 22 位,那前面的位异或出来就已经大于 11 了。然后应该就可以理解了吧,至于前面”二进制下只有末尾不同的数“也是一样的道理。写这篇题解的时候我可能也不是很知道为什么只有 33

    33 是第 22 个质数,22 是第一个质数,则 xxyy2211。注意两数可能调换位置。

    code

    #include<bits/stdc++.h>
    using namespace std;
    int t,a,b;
    int main(){
        cin>>t;
        while(t--){
            cin>>a>>b;
            if((a==2&&b==1)||(a==1&&b==2)) puts("Yes");
            else puts("No");
        }
    }
    
    • 1

    信息

    ID
    7346
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者