问题 1453: [蓝桥杯][历届试题]翻硬币(贪心)

题目链接:点击这里

在这里插入图片描述
在这里插入图片描述
思路:初始状态和目标状态有偶数个位置不同,初始状态中每两个不同的位置之间可以翻转成目标状态。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#include<algorithm>

using namespace std;

const int N = 1010;

char a[N], b[N];
vector<int> p;

int main()
{
    scanf("%s%s", a, b);
    int lena = strlen(a);
    
    for(int i = 0; i < lena; ++i)
        if(a[i] != b[i])    p.push_back(i);
    
    int ans = 0;
    for(int i = 1; i < p.size(); i += 2)
        ans += p[i] - p[i-1];
    
    printf("%d\n", ans);
    return 0;
}
发布了811 篇原创文章 · 获赞 127 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/qq_42815188/article/details/104908878