首页 > 其他分享 >B. Plus-Minus Split

B. Plus-Minus Split

时间:2024-01-27 16:33:05浏览次数:27  
标签:int cin Plus Split ans 序列 tie Minus

原题链接

我太菜了

赛时用\(O(n^2)\)的方法做,真的想不到什么线性的方法,比完才知道原来这么******简单

如何得到思路

我们肯定要尽可能地得到一串数字使其和为零
假设\(B\)为最长的一串数字和为零的序列,那么可能存在其子序列的和也为零,而我们把这个子序列从\(B\)中分开来对最后的结果是没有影响的,因为0-0=0
而最短的子序列和为零的是恰好相邻的异号,所以我们可以用栈,只要放进去的时候遇到异号就消除,最后栈的大小就是答案。
然后我们发现只要异号相邻就消除,所以最后栈内的元素肯定同号,我们可以直接统计加号和减号个数,然后减一减就得到答案了

\(Code\)

#include<bits/stdc++.h>
using namespace std;
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int t;
    cin>>t;
    while(t--)
    {
        int n,ans=0;
        cin>>n;
        string s;
        cin>>s;
        for(int i=0;s[i];i++)
            if(s[i]=='+') ans++;
            else ans--;
        cout<<abs(ans)<<endl;
    }
    return 0;
}

标签:int,cin,Plus,Split,ans,序列,tie,Minus
From: https://www.cnblogs.com/pure4knowledge/p/17991624

相关文章

  • C. Non-coprime Split
    首先,在这道题中,我们首先要把区间内的数字分为两类,包含偶数的区间和不包含偶数的区间。1、包含偶数的区间,我们中需要令a=2,b=i-2。即可符合题意。2、不包含偶数的区间,即只有一个奇数。那么我们要再次分类讨论,若该奇数为质数,贼输出-1;否则拆出它的两个因子(相乘为i)进行化简即可。主......
  • spring boot mybatis plus & tk-mybatis
    使用Mybatis时,最大的问题是,要写大量的重复SQL语句在xml文件中,除了特殊的业务逻辑SQL语句之外,还有大量结构类似的增删改查SQL。而且,当数据库表结构改动时,对应的所有SQL以及实体类都需要更改。这大量增加了程序员的负担。避免重复书写CRUD映射的框架有两个通用mybati......
  • Element Plus el-select el-tree-select 获取选中的label值
    select下拉框通过@change选择改变,轮巡方式根据id取name的值<el-form-itemlabel="企业类型"prop="entTypeId"><el-selectv-model="form.entTypeId"placeholder="请选择企业类型"style="width:220px"@change="entTypeCha......
  • RuoYi-Cloud-Plus
    一、官网dromara/RuoYi-Cloud-Plus二、Mac本地接入1、创建网段在Mac上:替换所有网络模式为自己定义的网段(或注释网断设置) network_mode:"mynet":::info网段设定可参考Docker网络模式--network_mode:::2、启动基础容器修改minio映射路径-v/home/minio/data:/data......
  • cprimerplus代码相关汇总
    第一章初识C语言重点内容起源:1972,贝尔实验室。继承B语言。特点:功能强大,应用范围广泛。设计步骤:1.定义程序目标2.设计程序3.编写代码4.编译5.运行程序6.测试和调试程序7.维护和修改程序本章小结C是强大而简洁的编程语言。它之所以流行,在于自身提供大量的实用编程工具,能很好......
  • notepad++ compare plus/compare plugin 64bit
    *[Releases·pnedev/comparePlus](https://github.com/pnedev/comparePlus/releases)https://objects.githubusercontent.com/github-production-release-asset-2e65be/50095301/5d0a2666-67f4-4971-9354-12339a75dd1f?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credent......
  • Table 变身记:Element-Plus携手SortableJS打造可拖拽式体验
    使用element-plus的el-table组件创建出来的table。结合sortable.js实现行拖动排序。安装包npminstall-Dsortablejs使用官方table示例代码<template><el-table:data="tableData"style="width:100%"><el-table-columnprop="date"label=&quo......
  • MybatisPlus
    MybatisPlus想念mp的第xxx天......
  • [EFI]ASUS Tuf Gamming B550m Plus+AMD Ryzen 5 4650G电脑 Hackintosh 黑苹果efi引导
    硬件型号驱动情况主板AsusTUFGammingB550mPlus+WIFI处理器AMDRyzen54650G已驱动内存32GB(4x8GB)AsgardRGB@3200已驱动硬盘Samsung970Pro512Gb已驱动显卡SapphireRX6600XT已驱动声卡ALCS-1200A已驱动网卡RTL81252.5GbE已驱动无线网卡+蓝牙BCM94360CDSonoma及......
  • SpringBoot集成MybatisPlus
    1、添加依赖<!--mybatis-plus启动器--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId></dependency><!--mybatis-plus代码生成器--><depe......