Codeforces 1373C - Pluses and Minuses

  • 题目含义:
    本题并不是让你复现给的代码,而是以更简单的时间复杂度实现。
  • 题目思路:
    相当于找规律,首先打印出example1 里的变量改变情况。
    在这里插入图片描述
    可以从上图看出,每次cur初始值递增,相当于设定了一个界限min, cur < min时,更新这个界限为 cur;同时res增加的部分,相当于 遍历的步长i + 1。因为每次都从头遍历一遍,而cur递增,前面的部分一样。 最后ans += len(str),因为如果cur没有 < min, 会一直进行到遍历完字符串,从头到尾遍历了一遍此字符串, 要加上长度。
    举例说明, --±。 初试 cur = min = ans = 0;
    遍历这个字符串
    第一个为 - ,则 cur --,此时 cur < min,更新min为-1,ans += 1;
    第二个为 -, 则 cur – ,此时 cur <min ,更新min为-2,ans += 2;
    第三个为 +,则cur ++,cur = -1;
    第四个为 - ,则cur – ,cur = -2.遍历完成。
    ans += 4. ans = 7.
  • 代码
#include "bits/stdc++.h"
using namespace std;
#define mem(a,b) memset(a,b,sizeof(a))
#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值