zoukankan      html  css  js  c++  java
  • 简单异或 && 洛谷 P1469 找筷子 && 洛谷 P3908 数列之异或

    异或运算

    相同为0,不同为1。

    1^1=0,0^1=1,1^0=1,0^0=0

    P1469 找筷子

    很有趣的一道题。因为空间有限制,所以我们每读入一个数就与ans异或一下,因为相同会变成0,所以剩下的即是答案。

     1 #include<iostream>
     2 #include<cstdio>
     3 using namespace std;
     4 int n,a,ans;
     5 int main(){
     6     cin>>n;
     7     for(int i=1;i<=n;i++){
     8         scanf("%d",&a);
     9         ans^=a;
    10     }
    11     cout<<ans;
    12     return 0;
    13 }

    P3908 数列之异或

    发现这样一个规律,0^1=1,2^3=1,3^4=1,所以每四个就抵消成0,所以看n+1(因为加上0)除以4的余数即可。

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 using namespace std;
     5 long long a;
     6 int main(){
     7     cin>>a;
     8     if((a+1)%4==0){
     9         cout<<0;
    10         return 0;
    11     }
    12     if((a+1)%4==1){
    13         cout<<a;
    14         return 0;
    15     }
    16     if((a+1)%4==2){
    17         cout<<1;
    18         return 0;
    19     }
    20     if((a+1)%4==3){
    21         long long aaa=a^1;
    22         cout<<aaa;
    23         //或者直接 cout<<a+1; 
    24         return 0;
    25     }
    26     return 0;
    27 }
  • 相关阅读:
    Rocketmq
    HTTPS 证书显示不安全
    js json 转为url参数
    Telnet 安装
    自己配置环境变量不起作用的问题
    Android笔记-Dalvik VM-1
    Fuzzy Logic/Expert System/Control
    PhD第一学期小结
    linux中的>、>>、2>&1、管道命令
    Hyper-v虚拟机设置静态IP
  • 原文地址:https://www.cnblogs.com/yinyuqin/p/14021226.html
Copyright © 2011-2022 走看看