博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
翻硬币 贪心
阅读量:5210 次
发布时间:2019-06-14

本文共 707 字,大约阅读时间需要 2 分钟。

题目地址;你懂的

题干:

问题描述

小明正在玩一个“翻硬币”的游戏。

桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。

比如,可能情形是:**oo***oooo

如果同时翻转左边的两个硬币,则变为:oooo***oooo

现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?

我们约定:把翻动相邻的两个硬币叫做一步操作,那么要求:

输入格式

两行等长的字符串,分别表示初始状态和要达到的目标状态。每行的长度<1000

输出格式

一个整数,表示最小操作步数。

样例输入1
**********

o****o****

样例输出1
5
样例输入2
*o**o***o***

*o***o**o***

样例输出2
1

因为只要有一位不相等  就没有达到最终状态

由于就是对每一位取反操作,所以和点的操作顺序没有关系

代码:

#include
#include
using namespace std;char other(char ch){ if(ch=='o') return '*'; else return 'o';}int main(){ string a,b; cin>>a>>b; int length=a.length(); int ans=0; for(int i=0;i

转载于:https://www.cnblogs.com/jingqi814/p/3644354.html

你可能感兴趣的文章
eclipse老是报ThreadPoolExecutor$Worker.run()(转)
查看>>
[NOI2005 维护序列]
查看>>
easyui源码翻译1.32--ComboGrid(数据表格下拉框)
查看>>
LeetCode 274. H-Index
查看>>
LeetCode 112. Path Sum
查看>>
Json,Gson,Ajax基础知识
查看>>
c#Task类。实现异步的一种方式
查看>>
【待阅】待整理文章列表
查看>>
使用 after 伪类清除浮动
查看>>
自定义模板语言之simple_tag和自定义过滤器
查看>>
oracle数据库
查看>>
BZOJ 1801: [Ahoi2009]chess 中国象棋( dp )
查看>>
linux 设置时区
查看>>
异步路由、单播泛洪产生的安全侦听风险
查看>>
《STL源码剖析》STL的双层配置器
查看>>
VC分发包版本问题
查看>>
这是通过 Open Live Writer(是个博客编辑器) 发布的
查看>>
Codeforces Round #401 (div.2)
查看>>
AndroidDevTools简介
查看>>
bzoj 4032: [HEOI2015]最短不公共子串【dp+SAM】
查看>>