E. Binary Deque[双指针好思维题]

embedded/2024/9/25 9:35:26/

Binary Deque

题面翻译

有多组数据。

每组数据给出 n n n 个数,每个数为 0 0 0 1 1 1 。你可以选择从两边删数,求至少删几个数才可以使剩下的数总和为 s s s

如果不能达到 s s s ,则输出 − 1 -1 1

题目描述

Slavic has an array of length $ n $ consisting only of zeroes and ones. In one operation, he removes either the first or the last element of the array.

What is the minimum number of operations Slavic has to perform such that the total sum of the array is equal to $ s $ after performing all the operations? In case the sum $ s $ can’t be obtained after any amount of operations, you should output -1.
在这里插入图片描述在这里插入图片描述

样例 #1

样例输入 #1

7
3 1
1 0 0
3 1
1 1 0
9 3
0 1 0 1 1 1 0 0 1
6 4
1 1 1 1 1 1
5 1
0 0 1 1 0
16 2
1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1
6 3
1 0 1 0 0 0

样例输出 #1

0
1
3
2
2
7
-1
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
int t, n, m;
int w[2000005];
int main()
{cin >> t;while (t--){int num1 = 0, num2 = 0, temp = 0,sum=0;cin >> n >> m;for (int i = 1; i <= n; i++)cin >> w[i],sum += w[i];if (sum < m){//特判cout << -1 << endl;结束continue;}int num = 0;int ans = 0;for (int i = 1, j = 1; i <= n;i++) {num += w[i];while (j<i && num>m){//双指针前后符合并且和太大了就做减法num -= w[j++];//减去}if (num == m){ans = max(ans, i - j + 1);//不断更新}}cout <<n-ans << endl;}return 0;
}

http://www.ppmy.cn/embedded/44075.html

相关文章

day21二叉树part07|530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先

**530.二叉搜索树的最小绝对差 ** 遇到在二叉搜索树上求什么最值&#xff0c;求差值之类的&#xff0c;都要思考一下二叉搜索树可是有序的&#xff0c;要利用好这一特点。 class Solution { public:void trival(TreeNode* node, vector<int>& nums) {if (node nul…

Flutter 中的 RotatedBox 小部件:全面指南

Flutter 中的 RotatedBox 小部件&#xff1a;全面指南 在 Flutter 的丰富组件库中&#xff0c;RotatedBox 是一个简单而强大的小部件&#xff0c;它能够对子组件进行旋转。这使得 RotatedBox 成为实现某些布局效果和动画的理想选择。本文将详细介绍 RotatedBox 的使用方法&…

摩尔线程MTT S4000 AI GPU助力30亿参数大模型训练,性能比肩英伟达同类解决方案

中国国产GPU制造商摩尔线程(Moore Threads)在AI加速器领域取得了显著进展&#xff0c;其最新推出的MTT S4000 AI GPU在训练大规模语言模型时表现突出&#xff0c;据称相较于其前代产品有着显著的性能提升。根据cnBeta的报道&#xff0c;搭载S4000 GPU的全新“酷鹅千卡智能计算集…

springboot常用的注解

启动注解(Spring Boot 应用的入口注解)@SpringBootApplication @SpringBootApplication 是一个注解,它是 Spring Boot 应用的入口注解,用于表示一个应用程序的主类。这个注解通常被放置在包含 main() 方法的类上。@SpringBootApplication 是一个组合注解,整合了以下三个注…

CentOS8环境下FTP服务器安装与配置

在本指南中&#xff0c;我们将一步步介绍如何在CentOS 8环境下安装和配置一个FTP服务器。FTP&#xff08;文件传输协议&#xff09;是一种网络传输协议&#xff0c;用于在网络中的计算机之间传输文件。虽然现在有更安全的传输方式&#xff0c;如SFTP或FTP over SSL&#xff0c;…

onenav一为导航主题4.05开心版 可保存授权

一款大多数导航网站使用且功能非常全面的导航主题&#xff0c;有能力的情况下还是劝大家支持正版。 演示站&#xff1a;onenav一为导航主题演示站 后台演示 | 演示后台&#xff1a;登录 - onenav一为导航主题演示站 后台演示 后台测试账号获取&#xff1a;演示站后台账号获取…

ECMAScript 深度解析:现代 JavaScript 综合指南

JavaScript&#xff0c;作为无所不在的 Web 语言&#xff0c;其背后的标准规范称为 ECMAScript。无论您是经验丰富的 Web 开发人员还是刚开始编程之旅的新手&#xff0c;理解 ECMAScript 都是释放 JavaScript 全部潜能并构建动态交互式应用程序的关键。在本文中&#xff0c;我们…

勒索病毒的策略与建议

随着网络技术的快速发展&#xff0c;勒索病毒攻击成为全球范围内日益严重的网络安全威胁。勒索病毒通过加密用户文件或锁定系统来勒索赎金&#xff0c;给个人和企业带来了巨大的损失。因此&#xff0c;了解如何应对勒索病毒攻击至关重要。本文将概述一些有效的防范措施和应对策…