题目
题目链接
题解贪心。
看正确率觉得终于来个简单的了,而且底下标签也是我最喜欢的贪心,觉得稳了。 妈的,题目啥意思都没看明白。
扫了一眼别人的题解才知道原来只输入根本不可能存在奇数个不一样的硬币,不同的个数只能是偶数。 做的时候我还纳闷初始:*o 目标:**
这可咋处理。原来就不可能为奇数个不同的。
那就好说了,用另一个数组存在第i
个位置上,初始硬币和目标硬币是否一样,一样为0
,反之为1
。 从左边开始,相邻的两个未配对的1
进行配对,两个位置之间的差值就是要翻动的次数。 算了真不好说,看图: 这是存储是否一样的那个数组。红线是匹配的,绿线标出的是要翻的位置,而其右边是被其左侧翻动带着翻动的,所以总共翻
4
次。
#include
using namespace std;
const int N = 1010;
string s1, s2;
int a[N], p, ans;
int main()
{
cin>>s1>>s2;
int n = s1.size();
for(int i = 0;i
关注
打赏