首页 > 翻硬币
头像 Hanson_Zhong
发表于 2023-04-08 19:09:17
链接:https://ac.nowcoder.com/acm/problem/14355 来源:牛客网 题号:NC14355 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 展开全文
头像 Weiqtttt
发表于 2022-04-13 23:24:04
翻硬币 题意:输入两个表示硬币正反面状态的字符串,进行翻转操作使得初始状态达到目标状态,每次翻转只能同时操作相邻的两个硬币。 题解: 因为只能反转相同的连续的两个硬币,所有从前往后遍历,遇到不相同的就将当前位和后面一位反过来,后面一位不用管,因为下一次遍历就会到这个字符。遍历到字符串倒数第二位截止, 展开全文
头像 威风镰鼬
发表于 2021-11-06 16:20:18
思路 水题没必要写得像楼上那么复杂吧…… 从左到右出现和目标状态不同的字符和下一个字符改变, 这个操作的次数就是答案了,递推复杂度O(n) 代码 #include<bits/stdc++.h> //#define int long long using namespace std; co 展开全文
头像 南皊
发表于 2021-04-07 17:44:52
竟然没有题解,是人太少了还是太简单了..不过还是把我的贴上去吧,第一次写题解比较随意看不懂见谅..简单的深搜会超时,所以得优化递归代码。由于翻硬币时只能翻相邻的两枚,所以两串的不同点个数只能是偶数,我们就可以把它们看成一个个只有两个不同点的子串用递归解决了。容易发现让两个不同点转换的步数就是坐标之差 展开全文