原题链接:试题 历届试题 翻硬币

1、懒得样式,截图如下



2、思路:

首先,同时翻动两个相邻的硬币,这就意味着不同的硬币的个数一定是偶数个,如果是奇数个永远也达不到目标状态。
其次,顺序翻转就是翻转次数最少的,因为如果你优先翻转两个相邻的不是相同状态的硬币(假设它们在中间),那么由于必须翻转两个相邻的硬币,这就导致这两个硬币的前方的硬币必须恰好两两状态不同,否则,必然会多翻转一次到中间两个状态不同的硬币。
(类似冒泡排序,即将前边排序好,不一样的状态后移,移到最后一个不一样的状态,凑成一对,转移完毕。我们知道,冒泡排序本身就是交换次数最少的排序方法,故,也就是顺序翻硬币为最翻转少的次数)

设0为状态相同,1为状态不同。
例如:0101101

若优先翻转两个状态不同的硬币。则:
①0100001
②0010001
③0001001 从这里可以看到刚才反转的硬币又翻转回来了,所以刚才的翻转属于无效翻转
④0000101
⑤0000011
⑥0000000

而从一开始翻转:
①0011101
②0000101
③0000011
④0000000

具体思路:
1、设置两个串接收两排硬币的状态
2、读取两个串,匹配硬币,相同记为-1,不同记为1。状态记录在int型数组中,int数组的长度即s1或者s2的串长。
3、读取数组值,
若值为-1,不予理会,继续读取下一个值,
若值为1,将下一个状态设置为另一种状态(这里就可以看出设置1和-1的好处了,直接去相反数就ok),累加设置状态的次数。
需要注意,不要数组下标越界。加个判断条件,或者抛出异常。


题外话,今日心情:烦躁。
今晚一晚上,就写了一篇博客,本来想随便写写思路,可是,由于隔壁桌那位美丽的小姐不停的抖腿抖啊抖啊抖啊抖,然后脱鞋,鞋子摩擦地板的声音,裤子摩擦的声音…在我提醒三次依旧不知悔改的情况下,我烦躁到极点,做别的可能也无所收获,努力让自己心静下来,于是认真敲字,认真写步骤,毕竟这可能是我最后一次接触蓝桥杯,接触算法。真想骂人,素质这东西不是谁都有。


import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String s1 = sc.nextLine();String s2 = sc.nextLine();int a[] = new int[s1.length()];for(int i=0;i<s1.length();i++){if(s1.charAt(i)==s2.charAt(i))a[i]=-1;elsea[i]=1;}int count = 0;for(int i = 0;i<a.length;i++) {if(a[i]==-1);else {if(i+1<=a.length) {a[i+1] = -a[i+1];count++;}}}System.out.print(count);}}

Good luck
persevere and confident.
wy
2021.4.13

试题 历届试题 矩阵翻硬币相关推荐

  1. 试题 历届真题 翻硬币【第四届】【省赛】【B组】

    小明正在玩一个"翻硬币"的游戏. 桌上放着排成一排的若干硬币.我们用 * 表示正面,用 o 表示反面(是小写字母,不是零). 比如,可能情形是:**oo***oooo 如果同时翻转 ...

  2. 历届试题 矩阵翻硬币 蓝桥杯 大数开方 大数相乘

    历届试题 矩阵翻硬币   时间限制:1.0s   内存限制:256.0MB 问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵. 随后,小明对每一个硬币分别进行一次 Q 操作. 对第x行第y列的硬 ...

  3. 历届试题 矩阵翻硬币

    历届试题 矩阵翻硬币   时间限制:1.0s   内存限制:256.0MB      问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵. 随后,小明对每一个硬币分别进行一次 Q 操作. 对第x行 ...

  4. 【蓝桥杯】历届试题 矩阵翻硬币

    历届试题 矩阵翻硬币 ----------------------------------------------------痞子小小崔 时间限制:1.0s 内存限制:256.0MB 问题描述 小明先 ...

  5. 蓝桥杯历届试题----矩阵翻硬币

    矩阵翻硬币 问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵.随后,小明对每一个硬币分别进行一次 Q 操作.对第x行第y列的硬币进行 Q 操作的定义:将所有第 i*x 行,第 j*y 列的硬币进 ...

  6. 试题 历届试题 翻硬币(贪心)

    试题 历届试题 翻硬币 资源限制 时间限制:1.0s 内存限制:256.0MB Work hard,Play harder. 问题描述 小明正在玩一个"翻硬币"的游戏. 桌上放着排 ...

  7. 蓝桥杯试题:矩阵翻硬币

    矩阵翻硬币 这是蓝桥杯的一道练习题,题目如下: 问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵. 随后,小明对每一个硬币分别进行一次 Q 操作. 对第x行第y列的硬币进行 Q 操作的定义:将所 ...

  8. 蓝桥杯--矩阵翻硬币

    历届试题 矩阵翻硬币   时间限制:1.0s   内存限制:256.0MB      问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵. 随后,小明对每一个硬币分别进行一次 Q 操作. 对第x行 ...

  9. 【蓝桥杯题解】矩阵翻硬币

    历届试题 矩阵翻硬币 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵. 随后,小明对每一个硬币分别进行一次 Q 操作. 对第x行第y列的 ...

最新文章

  1. 下划线hover下动态出现技巧
  2. java launcher 下载_Java Launcher下载并安装
  3. manjaro linux下载软件,manjaro linux
  4. 科目三道路考试技巧流程详解
  5. word制作电子签名
  6. 炼数成金hadoop视频干货03
  7. php sesssion,php sesssion原理
  8. SQL常用语句(普通查询+条件查询)
  9. 数学建模 ---斯皮尔曼相关系数
  10. 华为钱包开卡显示服务器异常,华为手机喜迎微信指纹支付 会遇到的11大常见问题!...
  11. (十九)论文阅读 | 目标检测之SNIP
  12. Hexo博客使用 Next主题 后的一些相关配置 记录
  13. 太过伤心,小王被这 10 道 Java 面试题虐哭了
  14. SEED-RL安装教程
  15. 线性回归、逻辑回归-学习笔记整理
  16. cocos2dx 2.2 安装跟以往的不同
  17. 华为手机将微信聊天记录迁移到 SD卡
  18. 05 ,花瓣数据集:下载数据,特征分析图 pairplot
  19. c语言怎么使用数组播放下一首音乐,【数组编程面试题】面试问题:c语言MP3播… - 看准网...
  20. 【强迫症系列】【win】更改 Python 的 pip install 默认安装依赖路径

热门文章

  1. ObjectArx获取实体周长
  2. imessage信息服务器保存,小白看过来 iMessage服务使用技巧
  3. 关于Java.Swing中Graphics 的应用(简单的一篇就够)
  4. Apache服务无法启动特定服务错误代码1
  5. pythonxpath定位_python+selenium基础之XPATH定位
  6. 图像处理(十):傅里叶变换
  7. 绝非杞人忧天!人工智能即将取代人类劳工
  8. 计算机桌子用英语怎么画,9平米的小卧室做电脑桌书桌,我简单的画了个示意图,希望大家帮忙建议!...
  9. js获取当前日期的前七天
  10. Java:StringBuilder的基本使用