贪心+思维,CF1615C - Menorah

一、题目

1、题目描述

2、输入输出

2.1输入

2.2输出

3、原题链接

1615C - Menorah


二、解题报告

1、思路分析

  • 两次连续操作相当于交换两位
  • 奇数次操作, 改变了01频数
  • 01频数是否能一样
    •     -> -1
  •  否则就是调整到该在的位置的最小操作次数
  •  不一样的位置一定是偶数个,否则01频数不相等
  •  那么答案就是不一样的位置个数    

2、复杂度

时间复杂度: O(N)空间复杂度:O(N)

3、代码详解

 ​
T = int(input())

ans = []
for _ in range(T):
    N = int(input())
    a = input()
    b = input()
    ca, cb = a.count('1'), b.count('1')

    res = -1

    if ca == cb:
        res = 0
        for i in range(N):
            res += (a[i] != b[i])

    if N - ca + 1 == cb:
        t = 0
        f = False
        for i in range(N):
            t += (a[i] == b[i])
            f = f or (a[i] == '1')
        if f:
            res = min(res, t) if ~res else t

    ans.append(res)

print('\n'.join(map(str, ans)))

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

利器放送丨如何在PS里使用stable diffusion插件?

各位设计界的领军人物们,你们一定对PS(也就是大家熟知的Photoshop)不陌生吧。同样,对于AI领域的精英们,SD(stablediffusion)这款软件也应该是如雷贯耳。这两款软件,各自独立且功能强…

Flutter调用本地web

前言: 在目前Flutter 环境中,使用在线 webview 是一种很常见的行为 而在 app 环境中,离线使用则更有必要 1.环境准备 将依赖导入 2.引入前端代码 前端代码有两种情况 一种是使用打包工具 build 而来的前端代码 另一种情况是直接使用 HTML 文件 …

HTML静态网页成品作业(HTML+CSS)—— 校园贷主题网页(2个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有2个页面。 二、作品演示 三、代…

vue3-sfc-loader动态加载一个异步vue组件生成cesium画面

在 Vue.js 3 中,使用 vue3-sfc-loader 可以动态加载异步的 Vue 单文件组件(.vue 文件)。这个工具允许你在运行时根据需要加载和解析 .vue 文件,使得组件的加载变得更加灵活和动态。 下面是一个简单的示例,演示如何使用…

DDei在线设计器-DDeiCore-面板插件

DDei-Core-面板 面板是一个可见的功能界面,既可以装载到布局(Layout)上,也能够被嵌套进其它面板,这一篇对DDei-Core的提供的主要面板进行介绍,最后以表格的形式列举其它面板。 如需了解详细的API教程以及参…

Python 全栈系列252 一些小计划

说明 最近整体进展还比较顺利,不过也因为这样,好几个线头怎么继续平衡和推进需要稍微捋一下。 内容 按重要|紧急方法来看,线头1是重要且紧急的,QTV200也算重要且紧急,其他都算是重要不紧急。 线头1: 数据清洗 虽然…

超好用的几个提升知识储备的网站-搜嗖工具箱

和图书 https://www.hetushu.com/ 一个好用的免费看小说网站。和图书是一个提供各种热门电子书,书籍,小说免费在线阅读的网站,涵盖网游、玄幻、穿越、科幻、仙侠、都市、武侠、历史、竞技、军事灵异等多个种类的小说。在这个网站看小说最大的感触简单干净&#xff…

基于cortex-M3的rtos原理(上)

一、RTOS是什么? 下面是网上搜索到的定义: 看到系统一般会想到window,linux这种,但是rtos区别于它们的是占用资源小,实时性强,可以运行在资源受限的mcu上。一些soc厂商编写的sdk里带有添加“任务”的功能&…

Day03 链表概念与单向不循环链表的实现

目录 1、顺序表的优缺点 2、链式存储的线性表 3、单向不循环链表实现 1、顺序表的优缺点 顺序表的优点是: 由于顺序表数据元素的内存地址都是连续的,所以可以实现随机访问,而且不需要多余的信息来描述相关的数据,所以存储密度高。 顺序表的缺点是: 顺序表的数据在进行…

http穿透怎么做?

众所周知http协议的默认端口是80,由于国家工信部要求,域名必须备案才给开放80端口,而备案需要固定公网IP,这就使得开放http80端口的费用成本和时间成本变的很高。那么能不能利用内网穿透技术做http穿透呢?下面我就给大…

git回滚项目至指定版本

用过两种方式 1.使用git命令 进入到项目目录地址,使用git log查看提交版本信息 按q退出 若非对应分支,使用git checkout 分支名 切换分支 这里回退至上一个版本 git reset --hard 版本号 再次推送即可 这里需要使用-f命令 强行推送 2.在pycharm中…

Ps:管理动作和动作组

◆ ◆ ◆ 管理动作 管理“动作” Actions面板中的动作以使其具有条理性,并仅提供项目所需的动作,可以重新排列、复制、删除、重命名和更改动作选项等。 1、重新排列动作中的命令 在“动作”面板中,将命令拖动到同一动作中或另一动作中的新位…

使用gtest做cpp的单元测试并可查看代码覆盖率

前言 由于工作需要,要使用googletest做单元测试,本文记录下搭建gtest单元测试环境,并查看代码覆盖率的方法,以备不时之需。 准备工作 编译gtest 克隆gtest源码: git clone https://github.com/google/googletest.g…

Vue44-创建vue脚手架

一、Vue脚手架的版本说明 vue cli:command line interface 命令行接口工具 用最新的脚手架,这样可以兼容vue3荷vue2版本。 二、通过vue脚手架创建项目 注意: 执行npm run serve 启动项目的时候,要进入到创建的vue项目里面&…

Java高级特性

引言 Java不仅提供了基础的编程功能,还包括了一系列强大的高级特性,这些特性能够显著提高代码的灵活性、可扩展性和性能。本文将详细介绍Java的几个高级特性,包括反射机制、注解与注释、泛型编程、以及Lambda表达式与Stream API,并…

KVM+GFS分布式存储系统构建高可用群集

KVMGFS 分布式存储系统构建 KVM 高可用群集 一:理论概述 1.1:Glusterfs 简介 Glusterfs 文件系统是由 Gluster 公司的创始人兼首席技术官 Anand Babu Periasamy编写。 一个可扩展的分布式文件系统, 用于大型的、 分布式的、 对大量数据进行访…

CrossOver 2024软件安装包下载

CrossOver不像Parallels或VMware的模拟器,而是实实在在Mac OS X系统上运行的一个软件。CrossOvers能够直接在Mac上运行Windows软件与游戏,而不需虚拟机。它为Windows软件提供所需的资源,以达到在Mac OS X系统上运行Windows程序的目的。 安 装…

OpenCV形态学

什么事形态学处理 基于图像形态进行处理的一些基本方法; 这些处理方法基本是对二进制图像进行处理; 卷积核决定着图像出来后的效果。 一 图像二值化 什么是二值化 将图像的每个像素变成两种值,如0,255. 全局二值化。 局部二值化。 thres…

【AIGC】MetaGPT原理以及应用

目录 MetaGPT原理 MetaGPT应用 MetaGPT和传统编程语言相比有什么优势和劣势 视频中的PPT 参考资料 MetaGPT原理 MetaGPT是一种多智能体框架,它结合了元编程技术,通过标准化操作程序(SOPs)来协调基于大语言模型的多智能体系统…

商品搬家到抖店

使用的工具为 张飞搬家,登录上去 张飞搬家 1 复制商品的网址 商品链接复制过去后,点击下面的开始批量复制 2 检查修改商品信息 价格啊、图片啊、各种商品属性啊,检查下,不合适的修改和补充 3 开始搬家 4 查看商品 打开抖店后…