第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南) G Xor Transformation

题目大意:
给X 和Y , X>Y。求在5步内,X xor 到Y的方案。

1.xor的意思是异或。

2.异或运算可以用^实现。
3.异或运算是可逆的。
A^B=C. C^A=B ,C^B=A;

了解这些后,解题思路就很清晰了。

1.求X^Y=Z, 如果Z<X,则只需要1步即可,因为可逆,X^Z=Y;
2.如果Z>X,则先让X^Y,得到Z,则X变成Z,再 Z^X=Y;

AC代码如下:
(记得开long long)

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=60;
const int M=5e5+10;

int a[N],b[N];

int n;

int main()
{
	int a=7;
	int b=10;
	int c;
	printf("a==%d   b===%d  \n",a,b);
	c=a^b;
	printf("A^B==C=%d\n",c);
	printf("C^A==B=%d\n",c^a);
	printf("C^B==A==%d\n",c^b);
	return 0;
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值