当前位置: 首页 > news >正文

Swap to Gather-----

C - 烟销日出不见人

 

问题陈述

给定一个长度为 NN 的字符串 SS,由 0 和 1 组成。保证 SS 至少包含一个 1

您可以执行以下操作任意次数(可能为零):

  • 选择一个整数 ii (1≤i≤N−11≤i≤N−1),并交换 SS 的第 ii 个和第 (i+1)(i+1) 个字符。

找出使所有 1 连续所需的最小操作次数。

在这里,只有当存在整数 ll 和 rr (1≤l≤r≤N1≤l≤r≤N) 时,所有 1 被称为连续,且 ii 的第 1 个字符为 SS 当且仅当 l≤i≤rl≤i≤r,否则为 0

约束条件

  • 2≤N≤5×1052≤N≤5×105
  • NN 是一个整数。
  • SS 是一个长度为 NN 的字符串,由 0 和 1 组成。
  • SS 至少包含一个 1

输入

输入通过标准输入以以下格式给出:

NN
SS

输出

打印答案。

示例 1

InputcopyOutputcopy
7
0101001
3

例如,以下三个操作使所有 1 连续:

  • 选择 i=2i=2 并交换第 2 个和第 3 个字符。然后,S=S= 0011001
  • 选择 i=6i=6 并交换第 6 个和第 7 个字符。然后,S=S= 0011010
  • 选择 i=5i=5 并交换第 5 个和第 6 个字符。然后,S=S= 0011100

不可能在两次或更少的交换中做到这一点,因此答案是 33。

示例 2

InputcopyOutputcopy
3
100
0

所有 1 已经是连续的,因此不需要交换。

示例 3

InputcopyOutputcopy
10
0101001001
7

思路: 

假设最左端在第一个点,移动次数最小;
然后从此点循环到最右点-1的个数点,
 每循环一次看有多少点应该向右移,有多少点应该向左移,但他们都向左移动了,所以要计算

代码:

//假设最左端在第一个点,移动次数最小;
//然后从此点循环到最右点-1的个数点,
// 每循环一次看有多少点应该向右移,有多少点应该向左移,但他们都向左移动了,所以要计算
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
char a[600010];
int b[600010];
int  n;
long long sum = 0, max = 0, h = 0, q, i, zong = 0,y=0;
int main() {scanf("%d", &n);for ( i = 0;i < n;i++) {do{scanf("%c", &a[i]);} while (a[i] != '1' && a[i] != '0');}for ( i = 0;i < n;i++) {if (a[i] == '1'&&h==0) {q = i;b[y++] = i;max += i -q -h;h++;}//第一个点else if (a[i] == '1') {b[y++] = i;max+= i -q -h;h++;}//后面的点到据第一个点的h距离}sum = max;for ( i = q+1;i <= b[y-1] - h+1 && zong<y;i++) {while (i+zong >b[zong]&&zong<y ) {zong++;}//有几个要向右移动max = max + 2 * zong - h;//zong个要向右移动,h-zong个不要向右移动但移动了(减去)sum = sum < max ? sum : max;}printf("%lld\n", sum);return 0;
}

相关文章:

Swap to Gather-----

C - 烟销日出不见人 问题陈述 给定一个长度为 NN 的字符串 SS&#xff0c;由 0 和 1 组成。保证 SS 至少包含一个 1。 您可以执行以下操作任意次数&#xff08;可能为零&#xff09;&#xff1a; 选择一个整数 ii (1≤i≤N−11≤i≤N−1)&#xff0c;并交换 SS 的第 ii 个和…...

使用DeepSeek+本地知识库,尝试从0到1搭建高度定制化工作流(自动化篇)

7.5. 配图生成 目的&#xff1a;由于小红书发布文章要求图文格式&#xff0c;因此在生成文案的基础上&#xff0c;我们还需要生成图文搭配文案进行发布。 原实现思路&#xff1a; 起初我打算使用deepseek的文生图模型Janus进行本地部署生成&#xff0c;参考博客&#xff1a;De…...

Python 函数式编程全攻略:从理论到实战的深度解析

本文深入剖析 Python 函数式编程&#xff0c;详细讲解其概念、核心特性&#xff08;迭代器、生成器等&#xff09;、内置函数及相关模块&#xff08;itertools、functools &#xff09;&#xff0c;结合丰富示例与直观图表&#xff0c;助力读者全面掌握函数式编程技巧&#xff…...

Ollama 在 LangChain 中的使用

文章目录 一、langChain 介绍二、环境安装1.依赖库安装2.下载模型 三、基本使用示例1.使用 ChatPromptTemplate 进行对话2.流式输出3.工具调用4.多模态模型调用 四、进阶使用1.使用 ConversationChain 进行对话2.自定义提示模板3.构建一个简单的 RAG 问答系统 五、遇到问题与解…...

使用apt-rdepends制作软件离线deb安装包

使用apt-rdepends制作软件离线deb安装包 除基础软件外&#xff0c;还要获取软件依赖包。 依赖包工具安装 apt-get install apt-rdependsapt-rdepends工具使用 使用apt-rdepends工具&#xff0c;递归方式分析软件依赖&#xff0c;下载软件包本体&#xff0c;和依赖包。制作时…...

根据POD名称生成 三部曲:get、describe、log、exec

#!/bin/bash# 定义颜色变量 RED\033[0;31m GREEN\033[0;32m YELLOW\033[0;33m NC\033[0m # No Color# 检查是否传入 Pod 名称作为参数 if [ -z "$1" ]; then# 如果没有传参&#xff0c;则提示用户输入 Pod 名称echo -e "${YELLOW}Please enter the Pod name:${…...

SQL sever数据导入导出实验

1.创建数据库TCP-H &#xff08;1&#xff09;右键“数据库”&#xff0c;点击“新建数据库”即可 &#xff08;2&#xff09;用sql语言创建&#xff0c;此处以创建数据库DB_test为例&#xff0c;代码如下&#xff1a; use master;go--检查在当前服务器系统中的所有数据里面…...

python环境的yolov11.rknn物体检测

1.首先是我手里生成的一个yolo11的.rknn模型&#xff1a; 2.比对一下yolov5的模型&#xff1a; 2.1 yolov5模型的后期处理&#xff1a; outputs rknn.inference(inputs[img2], data_format[nhwc])np.save(./onnx_yolov5_0.npy, outputs[0])np.save(./onnx_yolov5_1.npy, outpu…...

I2C、SPI、UART

I2C&#xff1a;串口通信&#xff0c;同步&#xff0c;半双工&#xff0c;双线&#xff08;数据线SDA时钟线SCL&#xff09;&#xff0c;最大距离1米到几米 SPI&#xff08;串行外设接口&#xff09;&#xff1a;串口通信&#xff0c;同步&#xff0c;全双工&#xff0c;四线&…...

如何监控和优化 MySQL 中的慢 SQL

如何监控和优化 MySQL 中的慢 SQL 前言一、什么是慢 SQL&#xff1f;二、如何监控慢 SQL&#xff1f;1. 启用慢查询日志启用方法&#xff1a;日志内容&#xff1a; 2. 使用 mysqldumpslow 分析日志 三、如何分析慢 SQL&#xff1f;1. 使用 EXPLAIN 分析执行计划使用方法&#x…...

13-二叉树最小深度-深度优先(DFS)

一、定义 什么是二叉树的最小深度&#xff1f; 二叉树的最小深度是指从根节点到最近的叶子节点的最短路径上的节点数。叶子节点是指没有子节点的节点。 举个例子&#xff1a; 1/ \2 3/ 4 这棵树的最小深度是 2&#xff0c;因为从根节点 1 到叶子节点 3 的路径最短&#x…...

51单片机入门_10_数码管动态显示(数字的使用;简单动态显示;指定值的数码管动态显示)

接上篇的数码管静态显示&#xff0c;以下是接上篇介绍到的动态显示的原理。 动态显示的特点是将所有位数码管的段选线并联在一起&#xff0c;由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选&#xff…...

代码补全『三重奏』:EverEdit如何用上下文识别+语法感知+智能片段重构你的编码效率!

1 代码自动完成 1.1 应用场景 在编辑文档时&#xff0c;为了提高编辑效率&#xff0c;编辑器一般都会带有自动完成功能&#xff0c;比如&#xff1a;输入括号时自动补全另一半&#xff0c;输入文字时&#xff0c;自动补全剩下的部分。 1.2 使用方法 1.2.1 自动缩进 单击主菜…...

电脑系统损坏,备份文件

一、工具准备 1.U盘&#xff1a;8G以上就够用&#xff0c;注意会格式化U盘&#xff0c;提前备份U盘内容 2.电脑&#xff1a;下载Windows系统并进行启动盘制作 二、Windows启动盘制作 1.微软官网下载启动盘制作工具微软官网下载启动盘制作工具https://www.microsoft.com/zh-c…...

Token Statistics Transformer:线性注意力革命,重新定义Transformer效率天花板

“TOKEN STATISTICS TRANSFORMER: LINEAR-TIME ATTENTION VIA VARIATIONAL RATE REDUCTION” 由Ziyang Wu等人撰写。文章提出一种新型Transformer注意力算子&#xff0c;通过对最大编码率降低&#xff08; M C R 2 MCR^{2} MCR2&#xff09;目标的变分形式进行展开优化得到&…...

Django 5实用指南(二)项目结构与管理

2.1 Django5项目结构概述 当你创建一个新的 Django 项目时&#xff0c;Django 会自动生成一个默认的项目结构。这个结构是根据 Django 的最佳实践来设计的&#xff0c;以便开发者能够清晰地管理和维护项目中的各种组件。理解并管理好这些文件和目录结构是 Django 开发的基础。…...

JAVA监听器(学习自用)

一、什么是监听器 servlet监听器是一种特殊的接口&#xff0c;用于监听特定的事件&#xff08;如请求创建和销毁、会话创建和销毁、上下文的初始化和销毁&#xff09;。 当Web应用程序中反生特定事件时&#xff0c;Servlet容器就会自动调用监听器中相应的方法来处理这些事件。…...

Ubuntu下mysql主从复制搭建

本文介绍mysql 8.4主从集群的搭建&#xff0c;从单个机器安装到集群的配置&#xff0c;整体走了一遍&#xff0c;希望对大家有帮助。mysql 8.4和之前的版本命令上有些变化&#xff0c;大家用来参考。 0、环境 ubuntu&#xff1a; 22.04mysql&#xff1a;8.4 1、安装mysql 1…...

VirtualBox 中使用 桥接网卡 并设置 MAC 地址

在 VirtualBox 中使用 桥接网卡 并设置 MAC 地址&#xff0c;可以按照以下步骤操作&#xff1a; 步骤 1&#xff1a;设置桥接网卡 打开 VirtualBox&#xff0c;选择你的虚拟机&#xff0c;点击 “设置” (Settings)。进入 “网络” (Network) 选项卡。在 “适配器 1” (Adapt…...

Ubuntu 20 掉显卡驱动的解决办法

目录 问题背景解决办法Step1&#xff1a;首先查看当前linux内核Step2&#xff1a;重启Step3&#xff1a;进入ubuntu advanced &#xff08;即高级选项&#xff09;Step4&#xff1a;查看有哪些linux内核Step5&#xff1a;如果滚回老板kernel还是没有驱动&#xff0c;就找到驱动…...

如何选择最佳输入读取器:invoice2data 的 6 种文本提取方法对比

如何选择最佳输入读取器&#xff1a;invoice2data 的 6 种文本提取方法对比 【免费下载链接】invoice2data Extract structured data from PDF invoices 项目地址: https://gitcode.com/gh_mirrors/in/invoice2data invoice2data 是一款强大的开源工具&#xff0c;能够从…...

终极HTTPS证书监控方案:uWebSockets自动续期确保WebSocket服务永不断线

终极HTTPS证书监控方案&#xff1a;uWebSockets自动续期确保WebSocket服务永不断线 【免费下载链接】uWebSockets Simple, secure & standards compliant web server for the most demanding of applications 项目地址: https://gitcode.com/gh_mirrors/uw/uWebSockets …...

别再自己写客服系统了!我用Amazon Connect 30分钟搭了个智能客服,还集成了AI

别再自己写客服系统了&#xff01;我用Amazon Connect 30分钟搭了个智能客服&#xff0c;还集成了AI 去年我们团队用户量突破50万时&#xff0c;客服工单突然暴涨300%。当时自研的工单系统根本扛不住压力&#xff0c;排队等待时间经常超过2小时。更糟的是&#xff0c;团队里3个…...

GetBox-PyMOL-Plugin:分子对接盒子计算的终极完整指南

GetBox-PyMOL-Plugin&#xff1a;分子对接盒子计算的终极完整指南 【免费下载链接】GetBox-PyMOL-Plugin A PyMOL Plugin for calculating docking box for LeDock, AutoDock and AutoDock Vina. 项目地址: https://gitcode.com/gh_mirrors/ge/GetBox-PyMOL-Plugin 在分…...

想知道欧拉5和宝马iX1谁更值得买?看完对比你就心中有数!

行业现状分析在当下的汽车市场中&#xff0c;新能源汽车领域竞争异常激烈。欧拉5作为长城汽车旗下欧拉品牌的一款重要车型&#xff0c;凭借其独特的外观设计、出色的续航能力以及亲民的价格&#xff0c;在女性消费者和城市通勤市场中占据了一定的优势。数据表明&#xff0c;在小…...

DLSS Swapper完全指南:3分钟免费提升游戏画质与性能的终极方案

DLSS Swapper完全指南&#xff1a;3分钟免费提升游戏画质与性能的终极方案 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 你是否曾在4K分辨率下游戏时&#xff0c;明明显卡性能足够&#xff0c;画面却依然模糊卡顿&am…...

2026年番禺全屋高端定制TOP排名及选材指南

开篇引言根据《2026年中国全屋定制行业发展报告》&#xff0c;广东省全屋定制市场规模同比增长38%&#xff0c;其中高端细分市场同比增长52%。在番禺&#xff0c;全屋定制需求占比高达72%&#xff0c;高端定制需求占比45%。为帮助番禺消费者选择合规、靠谱的高端定制品牌&#…...

微步N10迷你主机评测:i3-N305性能与工业应用解析

1. 微步N10迷你主机开箱与硬件解析 作为一名长期关注迷你主机的技术爱好者&#xff0c;最近拿到了一台搭载Intel Core i3-N305处理器的微步N10迷你主机工程样机。这款产品最吸引我的是它在紧凑机身&#xff08;14512854mm&#xff09;内实现了丰富的工业级接口配置&#xff0c;…...

零依赖多市场股票行情查询工具:Python标准库实现与OpenClaw集成

1. 项目概述&#xff1a;一个纯粹、高效的股票行情查询工具最近在折腾一个叫 OpenClaw 的开源项目&#xff0c;它本质上是一个帮你连接各种服务和数据的“智能助理”。在它的生态里&#xff0c;一个核心概念叫“技能”&#xff08;Skill&#xff09;&#xff0c;你可以理解为一…...

如何解决ORA-01078参数文件错误_pfile与spfile互相创建恢复

ORA-01078报错需先确认参数文件类型&#xff1a;连库执行show parameter spfile&#xff0c;非空为spfile&#xff0c;为空则为pfile&#xff1b;若无法连接&#xff0c;检查$ORACLE_HOME/dbs下spfile.ora与init.ora存在性及启动时是否指定pfile参数。ORA-01078 报错时怎么快速…...