贪心 Codeforces Round #303 (Div. 2) B. Equidistant String

题目传送门

 1 /*
 2     题意:找到一个字符串p,使得它和s,t的不同的总个数相同
 3     贪心:假设p与s相同,奇偶变换赋值,当是偶数,则有答案
 4 */
 5 #include <cstdio>
 6 #include <algorithm>
 7 #include <cstring>
 8 #include <cmath>
 9 #include <iostream>
10 using namespace std;
11 
12 const int MAXN = 1e5 + 10;
13 const int INF = 0x3f3f3f3f;
14 int p[MAXN];
15 char s[MAXN], t[MAXN];
16 
17 int main(void)        //Codeforces Round #303 (Div. 2) B. Equidistant String
18 {
19     //freopen ("B.in", "r", stdin);
20 
21     while (scanf ("%s%s", s+1, t+1) == 2)
22     {
23         memset (p, 0, sizeof (p));
24         int len = strlen (s+1);        bool flag = false;
25         for (int i=1; i<=len; ++i)
26         {
27             if (s[i] == t[i])    p[i] = 0;
28             else
29             {
30                 if (flag)    {p[i] = t[i] - '0';    flag = !flag;}
31                 else    {p[i] = s[i] - '0';    flag = !flag;}
32             }
33         }
34         if (flag)    puts ("impossible");
35         else
36         {
37             for (int i=1; i<=len; ++i)
38                 printf ("%d", p[i]);
39             puts ("");
40         }
41     }
42 
43 
44     return 0;
45 }
编译人生,运行世界!
原文地址:https://www.cnblogs.com/Running-Time/p/4520866.html