热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java编写跳号规则_[codeforces1373C]PlusesandMinuses找规律,难在+号会使数据发生跳跃,跳过了中间的+号...

EducationalCodeforcesRound90(RatedforDiv.2)参与排名人数12840[codeforces1373C]PlusesandMinuses找规律

Educational Codeforces Round 90 (Rated for Div. 2)   参与排名人数12840

[codeforces 1373C]    Pluses and Minuses   找规律,难在+号会使数据发生跳跃,跳过了中间的+号

题目大意:给定一个包含'-','+'符号的字符串,自小到大,给出每次的前进动力(对应题目代码中的变量init),'-'会使前进的动力-1,'+'会使前进的动力+1,若前进动力小于0,此次前进中止,从头开始字符串的遍历,中止时的步数参与求和,求,能完成该字符串的遍历(走完字符串,并且,前进动力大于等于0),输出所有步数和。

样例模拟如下:

--+-

7

1.最开始动力是0

起始动力0

字符位置1 2 3 4

字符数值- - + -

结束动力-1

此次步数是1

2.最开始动力是1

起始动力1 0

字符位置1 2 3 4

字符数值- - + -

结束动力0 -1

此次步数是2

3.最开始动力是2

起始动力2 1 0 1

字符位置1 2 3 4

字符数值- - + -

结束动力1 0 1 0

此次步数是4

总的步数是1+2+4=7

---

9

1.最开始动力是0

起始动力0

字符位置1 2 3

字符数值- - -

结束动力-1

此次步数是1

2.最开始动力是1

起始动力1 0

字符位置1 2 3

字符数值- - -

结束动力0 -1

此次步数是2

3.最开始动力是2

起始动力2 1 0

字符位置1 2 3

字符数值- - -

结束动力1 0 -1

此次步数是3

4.最开始动力是3

起始动力3 2 1

字符位置1 2 3

字符数值- - -

结束动力2 1 0

此次步数是3

总的步数是1+2+3+3=9

++--+-

6

1.最开始动力是0

起始动力0 1 2 1 0 1

字符位置1 2 3 4 5 6

字符数值+ + - - + -

结束动力1 2 1 0 1 0

此次步数是6

总的步数是6

再举一例

1

++-+-

1.最开始动力是0

起始动力0 1 2 1 2

字符位置1 2 3 4 5

字符数值+ + - + -

结束动力1 2 1 2 1

此次步数是5

总的步数是5

AC代码如下:

#include

#include

#define maxn 1000010

#define LL long long

char s[maxn];

LL ans;

int main(){

int t,cur,i,n;

scanf("%d",&t);

while(t--){

scanf("%s",s+1);

n=strlen(s+1),cur=0,ans=0;

for(i&#61;1;i<&#61;n;i&#43;&#43;){

if(s[i]&#61;&#61;&#39;&#43;&#39;)cur&#43;&#43;;

else cur--;

if(cur<0)ans&#43;&#61;i,cur&#61;0;//i表示当前步数.i&#61;&#61;n时&#xff0c;要求cur>&#61;0&#xff0c;此判断语句不执行&#xff0c;之后ans&#43;&#61;n打了补丁。

}

ans&#43;&#61;n;//需要到达终点时,cur>&#61;0

printf("%lld\n",ans);

}

return 0;

}



推荐阅读
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • 想把一组chara[4096]的数组拷贝到shortb[6][256]中,尝试过用循环移位的方式,还用中间变量shortc[2048]的方式。得出的结论:1.移位方式效率最低2. ... [详细]
  • Hanks博士是一位著名的生物技术专家,他的儿子Hankson对数学有着浓厚的兴趣。最近,Hankson遇到了一个有趣的数学问题,涉及求解特定条件下的正整数x,而不使用传统的辗转相除法。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 本文通过C++语言实现了一个递归算法,用于解析并计算数学表达式的值。该算法能够处理加法、减法、乘法和除法操作。 ... [详细]
  • 1、编写一个Java程序在屏幕上输出“你好!”。programmenameHelloworld.javapublicclassHelloworld{publicst ... [详细]
  • 探讨了一个包含纯虚函数的C++代码片段,分析了其中的语法错误及逻辑问题,并提出了修正方案。 ... [详细]
  • 本文详细介绍如何在 Apache 中设置虚拟主机,包括基本配置和高级设置,帮助用户更好地理解和使用虚拟主机功能。 ... [详细]
  • 网络流24题——试题库问题
    题目描述:假设一个试题库中有n道试题。每道试题都标明了所属类别。同一道题可能有多个类别属性。现要从题库中抽取m道题组成试卷。并要求试卷包含指定类型的试题。试设计一个满足要求的组卷算 ... [详细]
  • 本文详细介绍了Linux系统中信号量的相关函数,包括sem_init、sem_wait、sem_post和sem_destroy,解释了它们的功能和使用方法,并提供了示例代码。 ... [详细]
  • 处理Android EditText中数字输入与parseInt方法
    本文探讨了如何在Android应用中从EditText组件安全地获取并解析用户输入的数字,特别是用于设置端口号的情况。通过示例代码和异常处理策略,展示了有效的方法来避免因非法输入导致的应用崩溃。 ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 本文将深入探讨C语言中的位操作符——按位与(&)、按位或(|)和按位异或(^),通过具体示例解释这些操作符如何在位级别上对数据进行操作。 ... [详细]
  • 本问题涉及在给定的无向图中寻找一个至少包含三个节点的环,该环上的节点不重复,并且环上所有边的长度之和最小。目标是找到并输出这个最小环的具体方案。 ... [详细]
author-avatar
AinneJJ
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有