Cipher

Time Limit: 2000/1000ms (Java/Others)

Problem Description:

只剩两个小时就要正式开始第一次月赛了,大四师兄决定还是来出一道,找点存在感,出什么好呢。。。嗯,师兄最喜欢的就是加密了,为了留个好印象,我就来个最最最最最简单的加密吧。
大家都知道,加密算法中最基本的是异或(xor).有同学不知道异或是什么?简单的说就是相同为0,不同为1。
如两个数字1 xor 2 == 3数字是按位异或,也就是说表示为2进制,然后按位来异或01 xor 10 == 11
一个简单的加密算法就是把所有的数同时异或某个数字key。现在给出一个加密过后的数组A,和一个加密用的key,你能帮忙找出加密前的数据吗?

Input:

输入包含多组测试,对于每组测试,首先输入两个整数n和m(1 <= n <= 100,1<=m<=10^9),分别代表数组的大小和加密用的key,接下来是n个数字的数组A(1<=Ai<=10^9),代表加密后的数组。当n和m为0时结束。

Output:

对于每组测试,输出加密前的数组。

Sample Input:

4 7
6 4 2 0
0 0

Sample Output:

1 3 5 7
解题思路:简单的异或运算。如果A^B=C,那么这三个数中两两进行异或结果都能得到第三个数。
AC代码:
 #include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,x;
while(cin>>n>>m&&(n+m)){
for(int i=;i<=n;++i){
cin>>x;cout<<(x^m)<<(i==n?'\n':' ');//直接输出异或结果
}
}
return ;
}

ACM_Cipher(异或运算)的更多相关文章

  1. 网络误区:不用中间变量交换2个变量的value,最高效的是异或运算.

    本文记录了不使用中间变量交换2个变量的value,很多的网络留言说是直接异或运算就可以了,而且效率很高,是真的吗? 这里简单的说一下我的环境:Win7 32位,Qt creator 5.4.1 编译器 ...

  2. C、C++、Java异或运算交换变量变量值的区别

    今天看到一位大神的博客,深受感触.决定也发一篇博客,证明一下我还活着. 于是我翻看以前学习时做的一些笔记,整理了一下,得到了一个关于异或运算交换变量变量值的笔记. 首先来看下面三组表达式,看起来他们都 ...

  3. HDOJ 1287 破译密码(异或运算)

    Problem Description 有个叫"猪头帮"的国家,采用一种简单的文法加密,他们所用的语言里面只有大写字母,没有其他任何字符:现在还知道他们加密的方法是:只用一个大写字 ...

  4. hdu2095 像水题的不错题 异或运算

    异或运算的基础有点忘记了 先介绍一下..2个数异或 就是对于每一个二进制位进行位运算 具有2个特殊的性质 1.一个数异或本身恒等于0,如5^5恒等于0: 2.一个数异或0恒等于本身,如5^0恒等于5. ...

  5. bis和bic命令实现或和异或运算

    从20世纪70年代末到80年代末,Digital Equipment的VAX计算机是一种非常流行的机型.它没有布尔运算AND和OR指令,只有bis(位设置)和bic(位清除)这两种指令.两种指令的输入 ...

  6. 二进制按位与(&) 按位或(|)  异或运算(^)

    1.参加运算的两个数据,按照二进制进行按位与的运算. 运算规则:0&0=0;   0&1=0;    1&0=0;     1&1=1; 即:两位同时为“1”,结果才为 ...

  7. 基于c#的windows基础设计(学习日记1)【关于异或运算】

    第一次接触异或运算,总体来说比哈希算法简单的多,无论是理解还是代码的难易度,唯一不好的是在固定了密钥之后,随机性就小了很多,所以安全性比起哈希算法还是有所差距. 原理在网站上很多都有所以就不再赘述了. ...

  8. MATLAB:图像的与、或、非、异或逻辑运算(&、|、~、xor)

    图像的与.或.非.异或逻辑运算涉及到了&.|.~和xor符号 close all;%关闭当前所有图形窗口,清空工作空间变量,清除工作空间所有变量 clc; clear all; I=imrea ...

  9. BZOJ4103 异或运算

    4103: [Thu Summer Camp 2015]异或运算 Time Limit: 20 Sec  Memory Limit: 512 MB Description 给定长度为n的数列X={x1 ...

随机推荐

  1. Python异常捕捉的一个小问题

    问题: names = ['taotao','songwenjing','liu','li']I = iter(names)while True: try: s = next(I) except Ex ...

  2. JavaSE 学习笔记之反射技术(二十四)

    反射技术:其实就是动态加载一个指定的类,并获取该类中的所有的内容.而且将字节码文件封装成对象,并将字节码文件中的内容都封装成对象,这样便于操作这些成员.简单说:反射技术可以对一个类进行解剖. 反射的好 ...

  3. HDU 1176 DP

    题目大意: 在0~10这11个点上面接饼 , 每秒最多往左或往移动一格,或者保持原地不动 令dp[i][j]表示在第 i 秒在 第 j 个点上最多能得到的饼的数量 dp[i][j] = max(dp[ ...

  4. Javaweb中文乱码问题

    request.setCharacterEncoding("utf-8");必须写在获得参数之前,即request.getParameter();之前

  5. CentOS6网络设置(桥接模式)&Xshell连接虚拟机-

    CentOS无法上网,且Xshell无法连接到虚拟机问题: 目的:在桥接模式下,CentOS能上网,且Xshell能够连接到虚拟机.解决办法:https://www.youtube.com/watch ...

  6. Ubuntu源码下载方法

    首先进入: http://cdimage.ubuntu.com/releases/ 选择相应的版本: 进入release页面: http://cdimage.ubuntu.com/releases/1 ...

  7. mysql 中间件

    http://f.dataguru.cn/thread-543718-1-1.html mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持 ...

  8. docker: 解决centos7下cgroup.procs: no such device的错误

    在centos7下,运行docker run的时候会发生cgroup.procs: no such device的错误,解决方法是编辑 /lib/systemd/system/docker.servi ...

  9. Android之设置拖拽监听

    以EditText为例: username.setOnDragListener(new OnDragListener() { @Overridepublic boolean onDrag(View v ...

  10. 相当精简的CentOS个人桌面版--从CentOS6.3 32b-mini版開始(mini版过程略)

    利用网络实现相当精简的CentOS个人桌面版--从CentOS6.3 32位mini版開始(mini版过程略).升级后即是CENTOS6.5. 特别感谢163网易的镜像空间[http://mirror ...