第十四届蓝桥杯省赛PythonA/C组------翻转

题目描述:

小蓝用黑白棋的n个棋子排成了一行,他在脑海里想象出了一个长度为n的01串T,他发现如果把黑棋当做1,白棋当做0,这一行棋子也是一个长度为n 的01串S。
小蓝决定,如果在S中发现一个棋子和它两边的棋子都不一样,就可以将其翻转变成另一个颜色。也就是说,如果S中存在子串101或者010,就可以选择将其分别变为111和000,这样的操作可以无限重复。
小蓝想知道最少翻转多少次可以把S变成和T一模一样。


输入格式:

输入包含多组数据。
输入的第一行包含一个正整数D表示数据组数。
后面 2D 行每行包含一个01串,每两行为一组数据,第2*i-1行为第i组数据的T,第 2*i行为第i组数据的 Si,S¡和T 长度均为ni

输出格式:

对于每组数据,输出一行包含一个整数,表示答案,如果答案不存在请输出 -1。


大体思路 : 

1、这个题关键就是读懂题找到谁是T谁是S
2、还有以谁为基准的对应关系即可解题


AC代码如下: 

#include<iostream>
#include<cstring>
#include<algorithm>using namespace std;int main()
{int n;cin >> n;n = n*2;string s[n];for(int i=0;i<n;i++) cin >> s[i];//这里的i+=2很巧妙,可以手算模拟一下for (int i = 1; i < n; i +=2 ){int k = 0;int cnt = 0;//计算改变次数bool is_same = true;while(k<s[i].size()){//我们可以发现 一个规律就是如果前面两个数不一样//那一定是不行的if(s[i][0] != s[i-1][0]){is_same = false;break;}else{k++;//跟前后去做比较if(s[i][k] != s[i-1][k]){if(s[i][k] != s[i][k-1] && s[i][k] != s[i][k+1] && s[i][k-1] == s[i][k+1]){if(s[i][k] == '0'){s[i][k] = '1';cnt++;}else{s[i][k] = '0';cnt++;}}}}}if(s[i] != s[i-1])  is_same = false;if(is_same) cout << cnt << endl;else cout << "-1" << endl;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/640061.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常见的嵌入式面试问题解答!

1.关键字static的作用是什么&#xff1f;为什么static变量只初始化一次&#xff1f; ​1&#xff09;修饰局部变量&#xff1a;使得变量变成静态变量&#xff0c;存储在静态区&#xff0c;存储在静态区的数据周期和程序相同&#xff0c; 在main函数开始前初始化&#xff0c;在…

最新版的Tuxera NTFS 2024 支持macOS 12系统

备受期待的Tuxera NTFS 2024 Mac中文版终于上线了&#xff0c;小编第一时间为您带来&#xff01;Tuxera NTFS 2024 中文版是一款非常好用的NTFS读写工具&#xff0c;可以让您完整的读写兼容NTFS格式驱动器&#xff0c;对磁盘进行访问、编辑、存储和传输文件等。同时还包括开源磁…

C# wpf利用Clip属性实现截屏框

wpf截屏系列 第一章 使用GDI实现截屏 第二章 制作截屏框&#xff08;本章&#xff09; ______第一节 使用DockPanel制作截屏框 ______第二节 利用Clip属性实现截屏框(本节) 第三章 实现截屏框热键截屏 第四章 实现截屏框实时截屏 第五章 使用ffmpeg命令行实现录屏 文章目录 wp…

JavaScript基础之JavaScript引入方式

JavaScript引入方式 JavaScript 程序不能独立运行&#xff0c;它需要被嵌入 HTML 中&#xff0c;然后浏览器才能执行 JavaScript 代码。通过 script 标签将 JavaScript 代码引入到 HTML 中&#xff0c;一般以下方式: 外部方式内部方式JavaScript元素事件通过JavaScript伪URL引…

网络数据传输过程

先验知识&#xff1a;OSI模型 OSI网络模型实际上是参考模型&#xff0c;在实际中并不使用&#xff0c;在网络出现问题的时候&#xff0c;可以从一个宏观的整体去分析和解决问题&#xff0c;而且搭建网络的时候并不需要划分为7层&#xff0c;当今互联网广泛使用的是TCP/IP网络模…

js实现一个lazyman

“lazyman”通常被用来形容那些喜欢延迟处理或懒散的人&#xff0c;也就是那种不会立刻采取行动的人。 从设计模式的角度来说&#xff0c;有时也可能会用到“懒汉式”的概念&#xff0c;这通常指的是在需要的时候才进行初始化&#xff0c;比如Java中的单例模式。 此外&#x…

最短代码实现随机打乱数组各个元素的顺序

//最短代码实现随机打乱数组各个元素的顺序 randomSortArr(arr []) {return [...Array(arr.length)].map((v, i) > arr.splice(Math.round(Math.random() * (arr.length - 1)), 1)[0]); },

Unity 建造者模式(实例详解)

文章目录 说明实例1&#xff1a;构建游戏角色实例2&#xff1a;构建游戏场景实例3&#xff1a;构建UI界面 说明 在Unity中&#xff0c;建造者模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;它通过分离对象构建过程的复杂性&#xff0c;允许您以…

【cucumber】CucumberOptions详解

CucumberOptions注解&#xff1a;相当于Cucumber的初始化配置 Maven依赖包 <!-- 用户验收测试框架 io.cucumber.junit.CucumberOptions --><dependency><groupId>io.cucumber</groupId><artifactId>cucumber-junit</artifactId><vers…

第一节 K8S的基础概念

第一节 K8S的基础概念 Node 可以理解为一个物理机或者虚拟机 ,K8S中的一个节点 ,每个节点包含Pod 所需的服务, 这些节点 是由 Control Plane 来管理, 节点的名称 用来标识Node 对象,名称必须是唯一的. Node上有三个组件分别是 kubelet ,kube-proxy,container-runtime . kubel…

Linux命令-ab命令(Apache服务器的性能测试工具 )

Apache服务器的性能测试工具 ab命令 是一个测试你 Apache http 服务器的工具&#xff0c;你可以通过这个工具&#xff0c;指定一个单位时间内向 apache 发出的请求数量来看看你的 Apache 和机器配合的性能如何。 语法 []内容为ab命令后跟的语法&#xff0c;eg&#xff1a;ab …

MySQL索引优化:深入理解索引下推原理与实践

随着MySQL的不断发展和升级&#xff0c;每个版本都为数据库性能和查询优化带来了新的特性。在MySQL 5.6中&#xff0c;引入了一个重要的优化特性——索引下推&#xff08;Index Condition Pushdown&#xff0c;简称ICP&#xff09;。ICP能够在某些查询场景下显著提高查询性能&a…

小程序学习-20

建议每次构建npm之前都先删除miniprogram_npm

HJ7 取近似值【C语言】

【华为机试题 HJ7】取近似值 描述输入描述:输出描述:示例1示例2参考代码1参考代码2参考代码3描述 写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整;小于 0.5 ,则向下取整。 数据范围:保证输入的数字在 32 位浮点数范…

【Java】小白友好的java IO操作学习笔记

慢就是快&#xff0c;让知识先沉淀一会。 目录 流 数据流 文件流 文件复制 缓冲流 字符流 序列化 流 在 Java 中&#xff0c;流是一种用于处理输入和输出的数据序列的抽象概念。Java 提供了丰富的流类和接口&#xff0c;用于处理不同类型的数据源和数据目标。 Java 中…

Windows11家庭版上安装Hyper-V并导入虚拟机的方法

大纲 安装启用Hyper-V下载并安装启用 导入虚拟机代码地址 一般我们新买的电脑默认自带的是Windows家庭版。这个版本是没有Hyper-V的。如果安装自带Hyper-V的版本&#xff0c;则需要另外购买。但是我们还是有办法在Windows11的家庭版上安装和启用Hyper-V的。 安装启用Hyper-V …

前端模板字符串的使用

目录 1.说明 2.示例 3.总结 1.说明 模板字符串是用反引号&#xff08;&#xff09;分隔的字面量&#xff0c;允许多行字符串&#xff0c;带有嵌入表达式的字符串插值和一种带标签的模板的特殊结构。 是增强版的字符串&#xff0c;在进行字符串拼接时&#xff0c;可以拼接固…

如何理解伪标签中的置信度

伪标签中常常有置信度这一说法&#xff0c;通过置信度&#xff0c;我们可以筛选出质量高的伪标签&#xff08;直观来说是像素&#xff09;&#xff0c;那比如说预测结果为一个2256256的概率图&#xff0c;那针对一个像素的两个通道值&#xff0c;怎样才算质量高或者低呢&#x…

11 python快速上手

函数进阶 函数进阶1.参数的补充1.1 参数内存地址相关【面试题】1.2 函数的返回值是内存地址1.3 参数的默认值【面试题】1.4 动态参数 2. 函数和函数名2.1 函数做元素2.2 函数名赋值2.3 函数名做参数和返回值 3.返回值和print4. 作用域4.1 函数为作用域4.2 全局和局部4.3 global…

一种计数算法

前言 常见的一个问题: 给定一个整形数组, 统计其中有多少唯一的元素. 常见的思路有哪些呢? 元素去重并统计, 利用哈希表进行去重计数.数组排序后统计 以上空间复杂度均与元素数量关联, 如果允许损失精度, 是否可以使用较低的空间占用来统计呢? 利用布隆过滤器是一种的一…