codeforces 991-D. Bishwock(模拟)

http://codeforces.com/problemset/problem/991/D

解题思路:

对各种情况简单归类模拟一遍即可。

#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define mod 1000000007
typedef long long ll;
const int maxn=1e5+10;
string a,b;
int main()
{
    while(cin>>a>>b)
    {
        int num1=0,num2=0,cnt=0;
        for(int i=0;iif(a[i]!='X'||b[i]!='X')
            {
                if(a[i]!='X'&&b[i]!='X')   //当前有两个空 
                {
                    if(num2)    //如果前面一个位置有两个空 那么放入之后还剩一个空 
                      cnt++,num1=1,num2=0;
                    else if(num1)   //如果前面一个位置只有一个空 那么放入之后就全部抵消了 
                      cnt++,num1=0; 
                    else     //如果前面没有空 那么就把当前的两个空记录下来 
                      num2=1;
                }
                else    //当前只有一个空 
                {
                    if(num2)   //如果前面一个位置有两个空 那么就可以放入 
                      cnt++,num2=0;
                    else
                      num1=1;
                }
            }
            else
              num1=num2=0;
        }
        cout<return 0;
} 

你可能感兴趣的:(ACM,codeforces)