思路
考虑贪心。
从左往右扫,找到一个就标记一个即可。
但是要注意,当遇见这种情况时
000
000
最优的方法是左右各放一个积木,共放入两块。但如果按照刚刚的方法,则有可能会是这样
0X0
XX0
所以在一些地方有多种放法时,应该优先放置开口朝右的积木。
AC Code
#include<bits/stdc++.h>
using namespace std;
string h1,h2;
int ans=0;
int main(){
cin>>h1>>h2;
int n=h1.size();
for(int i=1;i<n;i++){
if(h1[i-1]=='0'&&h2[i-1]=='0'&&h1[i]=='0'){
h1[i-1]='X',h2[i-1]='X',h1[i]='X';
ans++;
}
if(h1[i-1]=='0'&&h2[i-1]=='0'&&h2[i]=='0'){
h1[i-1]='X',h2[i-1]='X',h2[i]='X';
ans++;
}
if(h1[i-1]=='0'&&h1[i]=='0'&&h2[i]=='0'){
h1[i-1]='X',h1[i]='X',h2[i]='X';
ans++;
}
if(h2[i-1]=='0'&&h1[i]=='0'&&h2[i]=='0'){
h2[i-1]='X',h1[i]='X',h2[i]='X';
ans++;
}
}
cout<<ans<<endl;
return 0;
}
标签:int,题解,h1,h2,Bishwock,CF991D
From: https://www.cnblogs.com/bubble-sort/p/18369991