• CF1421A XORwice


    题意

    给定 (a)(b) ,找到一个 (x) 使得 ((aoplus x)+(boplus x)) 的值最小,输出这个值

    Solution

    考场想法

    因为这个 (x) 要和两个数进行异或,所以要找一个合适的值。好像又是废话

    因为 (tleq 10^4) ,所以不能进行枚举等非 (O(1)) 操作。

    观察样例,发现最后一组的答案为 (0) ,恰好是 (1oplus 1) 的值。

    这时就可以有一个大胆的想法,是不是答案就是给出的 (a,b) 异或之值。

    将样例进行验证,发现是对的。

    完结撒花

    蒟蒻认为的正确做法

    因为异或也是按位运算,所以考虑对某一位进行考虑,然后扩展到所有位上。

    如果 (a)(b) 的某一相同位上一个是 (0) ,一个是 (1) ,那么 (x) 那一位上不管是什么,异或完还是一个 (0) 和一个 (1) 。也就是相加永远为 (1) ,所以不用管。

    如果 (a)(b) 的某一相同位上均为 (1)(0) ,那么 (x) 那一位只要对应为 (1)(0) 就可保证异或完相加为 (0)

    现在总结一下,就是: (a,b) 某一位相同,则答案对应的那一位为 (0)(a,b) 某一位不同,则答案对应的那一位为 (1)

    我艸,这不就是异或运算吗!

    是的,这和我第一个做法最后的结论相同,输出 (aoplus b) 即可。

    代码

    #include<bits/stdc++.h>
    
    using namespace std;
    
    int main(){
    	int a,b,T;
    	scanf("%d",&T); 
    	while(T--){
    		scanf("%d%d",&a,&b);
    		printf("%d
    ",(a^b));
    	}
    } 
    
  • 相关阅读:
    Redis_常用5大数据类型简介
    redis_安装
    Redis_NoSql分布式数据库CAP原理
    redis_NoSql数据库四大分类
    redis_NoSql入门概述数据模型简介
    redis_NoSql入门概述
    NGINX下配置CACHE-CONTROL
    (转)centos6.5安装VNC
    django出现__init__() got an unexpected keyword argument 'mimetype‘ 问题解决
    凌乱的2015
  • 原文地址:https://www.cnblogs.com/jasony/p/13843269.html
Copyright © 2020-2023  润新知