翻硬币(第四届蓝桥杯省赛C++B组)

在这里插入图片描述

根据题意可以理解为翻动第i枚硬币会带动第i+1枚硬币的反转,因此欲达到目标即从左到右依次递推即可。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
string be,af;
int ans;
int main()
{
    cin>>be;
    cin>>af;
    for(int i=0;i<be.length()-1;i++)
    {
        if(be[i]!=af[i])
        {
            ans++;
            if(be[i]=='*')
            {
                be[i]='o';
            }
            else
            {
                be[i]='*';
            }
            if(be[i+1]=='*')
            {
                be[i+1]='o';
            }
            else
            {
                be[i+1]='*';
            }
        }
    }
    cout<<ans;
}

猜你喜欢

转载自blog.csdn.net/weixin_44460602/article/details/107496867