Educational Codeforces Round 90 (Rated for Div. 2) C. Pluses and Minuses (1300)

C. Pluses and Minuses
题意:
给一个字符串s,有如下代码:

res = 0
for init = 0 to inf
    cur = init
    ok = true
    for i = 1 to |s|
        res = res + 1
        if s[i] == '+'
            cur = cur + 1
        else
            cur = cur - 1
        if cur < 0
            ok = false
            break
    if ok
        break

求res最后的值

思路:
跑一遍循环,依次找前缀和为 -1、-2、-3、……时的情况,答案要加上当时的结点值,最后再加上s的长度就行了
(其实就是把题目给的代码优化一下)

代码附:

#pragma GCC optimize("Ofast","inline","-ffast-math")
#pragma GCC target("avx,sse2,sse3,sse4,mmx")
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 2e5+10;
signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int t;
    cin>>t;
    string ss;
    while(t--)
    {
        cin>>ss;
        int now=-1,ans=0,sum=0;
        for(int i=0;ss[i];++i)
        {
            if(ss[i]=='-')sum--;
            else sum++;
            if(sum==now)
            {
                now--;
                ans+=i+1;
            }
        }ans+=ss.length();
        cout<<ans<<endl;
    }
    return 0;
}

热门文章

暂无图片
编程学习 ·

Linux centos7 乱码设置中文字符集

1.locale 查看现在使用的字符集locale -a 查看有哪些字符集utf8的就可以显示中文yum -y install kde-l10n-Chinese 安装后选个uft8的 ,设置一下全局变量vi /etc/profileexport LANG=en_CA.utf8=号后面是字符集,这个大家随意最后让这个配置文件生效就可以了. /etc/profile 可能…
暂无图片
编程学习 ·

安卓扫描车牌识别的功能SDK

安卓扫描车牌识别的功能SDK 为了缓解停车压力,在不影响道路使用的情况下,很多地方都在道路上划出一部分停车位,来供车主使用,此之为占道停车。目前国内路边占道停车主要是使用咪表、地磁、手持终端及人工的方式进行管理和收费。对于占道停车管理来说,在手机端集成一个优秀…
暂无图片
编程学习 ·

LeetCode题解(0744):寻找比目标字母大的最小字母(Python)

题目:原题链接(简单)解法 时间复杂度 空间复杂度 执行用时Ans 1 (Python) O(logN)O(logN)O(logN) O(1)O(1)O(1) 136ms (69.15%)Ans 2 (Python) O(logN)O(logN)O(logN) O(1)O(1)O(1) 136ms (69.15%)Ans 3 (Python)LeetCode的Python执行用时随缘,只要时间复杂度没有明显差异,…
暂无图片
编程学习 ·

springboot整合redis之史上最详步骤

springboot整合redis之史上最详步骤前言一、了解Redis一、搭建Redis环境1.Redis安装2.Redis可视化工具安装与连接二、SpringBoot整合Redis1.新建SpringBoot项目2.SpringBoot集成redis3.使用RedisTemplate操作Redis3.1实体类User3.2 工具类RedisUtil3.3 配置类RedisConfig3.4 Us…
暂无图片
编程学习 ·

redis知识点(一)

redis知识点(一) 问题Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内存…
暂无图片
编程学习 ·

云服务器与物理服务器哪一种更适合企业应用部署?

云服务器与物理服务器哪一种更适合企业应用部署呢? 全球企业早已意识到利用高端技术来提高工作效率并获得竞争优势。从目前的舆论方向来看,部分企业的转型主要围绕着如何将旧系统和应用迁移到“云”。而选用“云”的原因,是因为它的可伸缩性,高效率和高可用性。然而,有些人…
暂无图片
编程学习 ·

训练数据转换为PASCAL VOC2007

数据 我们已有标注数据个数为json保存的,现在训练代码使用的标注格式为PASCAL VOC2007,为了不修改代码,将数据转换到PASCAL VOC2007的xml格式。 转换代码 import os import json from lxml.etree import Element, SubElement, tostring, ElementTree from xml.dom import mi…
暂无图片
编程学习 ·

通过过滤器Filter解决post/get请求中文编码问题示例代码

##编码过滤器 功能:将客户端发送过来的数据(尤其是中文)都转换成UTF-8,这样后续的处理就不需要做其他额外的编码转换,做到编码前后统一 实现说明: 对于post请求以及响应可以直接调用setCharacterEncoding方法设置编码格式,而对于get请求,由于get请求参数是通过路径传参,而…
暂无图片
编程学习 ·

iOS开发之多线程(2)—— Thread

目录版本简介方法属性示例 版本 Xcode 11.5 Swift 5.2.2 简介 一个Thread即为一个线程. 方法属性 OC中的属性方法(Swift方法名类似): #pragma mark - 属性 // 可以使用返回的字典来保存线程的特定数据. (这只是一个普通的字典, 用来保存所有开发者感兴趣的数据.) @property (r…
暂无图片
编程学习 ·

老鸟给予Java初学者的学习路线的一些建议

java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍。这一部分的内容,同样适用于一…
暂无图片
编程学习 ·

智慧RFID工地人员定位-工地人员定位系统-新导智能

随着RFID技能的逐渐老练,RFID工地人员定位系统系在施工项目中越来越多地被运用到实践当中。尤其是在工地分布范围广,现场环境恶劣的项目施行现场,为了对施工现场进行安全规范办理,在施工项目应用根据RFID工地人员定位体系,能够实时监测各个施工现场的人员状况,统一办理,…
暂无图片
编程学习 ·

layui layer.open 弹窗,title标题根据不同场景显示不同的值

以表格操作弹窗为例表格有添加,修改,查看等等共用一个编辑弹窗,这时候弹窗标题就需要根据操作变化发生变化 废话少说,具体操作代码如下: parent.$(".layui-layer-title")[0].innerText= “要修改的内容”; //情况不同可能不需要parent的就别加 $(".layui-…
暂无图片
编程学习 ·

postman引入文件实现参数化及中文乱码问题解决

1、首先,在postman中输入地址和参数,保证接口请求成功。可以在tests中添加断言2、将需要参数化的参数用变量表示,并将变量添加进全局变量中3、将需要参数化的参数写成CSV,TXT,JSON格式的文档。这里用的是csv格式的文件,其中name是变量名如果用txt格式的文件,多参数之间要用…