计蒜客-- 奇怪的国家 (位运算)

有一个奇怪的国家,里面的国民对于事情的态度永远只有两面。当两个人遇到一起讨论一个事情的时候——两个持赞同观点的人遇到一起后会对这个事情都继续赞同;一个持赞同观点的人遇到一个持不赞同观点的人的时候,两人都会不再继续赞同;两个持不赞同观点的人遇到一起讨论后反而会对这个事情开始赞同。

输入格式

输入包括两行,每行包括 N(1 leq N leq 50)N(1N50) 个数字,分别表示两个人对于 NN 个事情对应的看法——00 表示不赞同、11 表示赞同。

输出格式

输出包括一行,包括 NN 个数字,表示两人相遇后,对于这 NN 件事情的最终看法。

样例输入

11100101
00101011

样例输出

00110001

题解:两种解法

解法一:位运算
 1 #include <iostream>
 2 #include <algorithm>
 3 #include <cstring>
 4 #include <cstdio>
 5 #include <vector>
 6 #include <cstdlib>
 7 #include <iomanip>
 8 #include <cmath>
 9 #include <ctime>
10 #include <map>
11 #include <set>
12 #include <queue>
13 using namespace std;
14 #define lowbit(x) (x&(-x))
15 #define max(x,y) (x>y?x:y)
16 #define min(x,y) (x<y?x:y)
17 #define MAX 100000000000000000
18 #define MOD 1000000007
19 #define pi acos(-1.0)
20 #define ei exp(1)
21 #define PI 3.141592653589793238462
22 #define INF 0x3f3f3f3f3f
23 #define mem(a) (memset(a,0,sizeof(a)))
24 typedef long long ll;
25 ll gcd(ll a,ll b){
26     return b?gcd(b,a%b):a;
27 }
28 bool cmp(int x,int y)
29 {
30     return x>y;
31 }
32 const int N=1005;
33 
34 int main()
35 {
36     std::ios::sync_with_stdio(false);
37     string s1,s2;
38     while(cin>>s1>>s2){
39         int n=s1.size();
40         for(int i=0;i<n;i++)
41             cout<<!((s1[i]-48)^(s2[i]-48));
42         cout<<endl;
43     }
44     return 0;
45 }
解法二:...
 1 #include <iostream>
 2 #include <algorithm>
 3 #include <cstring>
 4 #include <cstdio>
 5 #include <vector>
 6 #include <cstdlib>
 7 #include <iomanip>
 8 #include <cmath>
 9 #include <ctime>
10 #include <map>
11 #include <set>
12 #include <queue>
13 using namespace std;
14 #define lowbit(x) (x&(-x))
15 #define max(x,y) (x>y?x:y)
16 #define min(x,y) (x<y?x:y)
17 #define MAX 100000000000000000
18 #define MOD 1000000007
19 #define pi acos(-1.0)
20 #define ei exp(1)
21 #define PI 3.141592653589793238462
22 #define INF 0x3f3f3f3f3f
23 #define mem(a) (memset(a,0,sizeof(a)))
24 typedef long long ll;
25 ll gcd(ll a,ll b){
26     return b?gcd(b,a%b):a;
27 }
28 bool cmp(int x,int y)
29 {
30     return x>y;
31 }
32 const int N=1005;
33 
34 int main()
35 {
36     std::ios::sync_with_stdio(false);
37     string a,b,c;
38     cin>>a>>b;
39     c=a;
40     int len=a.length();
41     for(int i=0;i<len;i++){
42         if(a[i]!=b[i]) c[i]='0';
43         else c[i]='1';
44     }
45     cout<<c<<endl;
46     return 0;
47 }
原文地址:https://www.cnblogs.com/wydxry/p/7275475.html