翻硬币
Posted lukelmouse
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了翻硬币相关的知识,希望对你有一定的参考价值。
翻硬币
先手动模拟一遍过程,会发现解是具有唯一性的。
所以 唯一解就是最小步数,(O(n)) ,直接扫一遍就好了
#include <bits/stdc++.h>
using namespace std;
#define endl '
'
typedef long long LL;
typedef pair<int,int> PII;
const int N = 110;
char str[N],endi[N];
void turn(int x) {
if(str[x] == '*') str[x] = 'o';
else str[x] = '*';
}
int main() {
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin >> str >> endi;
int len = strlen(str);
int res = 0;
for(int i = 0;i < len - 1; ++i) {
if(str[i] != endi[i]) {
res ++;
turn(i);
turn(i + 1);
}
}
cout << res << endl;
return 0;
}
以上是关于翻硬币的主要内容,如果未能解决你的问题,请参考以下文章