【codechef】括号匹配,求子串最大值(灵活题)

最大子串和问题(Maximum Subarray) 又一个经典问题,对于一个包含负值的数字串array[1...n],要找到他的一个子串array[i...j](0 这里我们需要注意子串和子序列之间的区别。子串是指数组中连续的若干个元素,而子序列只要求各元素的顺序与其在数组中一致,而没有连续的要求。对于一个元素数为n的数组,其含 阅读详情

 Input
3
4
()()
-1 -2 3 4
4
(()]
-1 -2 3 4
4
[{]{
1 2 3 4

Sample Output
7
1
0

Explanation

For first test case take last 2 elements: 3 + 4 = 7. 
For second test case take the middle 2 elements: -2 + 3 = 1

http://www.codechef.com/problems/SUBARRAY/

#include<iostream>
#include<algorithm>
#include<string>
#include<map>//int dx[4]={0,0,-1,1};int dy[4]={-1,1,0,0};
#include<set>//int gcd(int a,int b){return b?gcd(b,a%b):a;}
#include<vector>
#include<cmath>
#include<stack>
#include<string.h>
#include<stdlib.h>
#include<cstdio>
#define mod 1e9+7
#define ll long long
using namespace std;
map<char,int> r;
ll x[100010];
ll sum[100010];
char y[100010];
int n;
int main(){
	r[']']='[';
	r['}']='{';
	r['>']='<';
	r[')']='(';
	int t;
	scanf("%d",&t);
	while(t--){
	//	memset(sum,0,sizeof(sum)); 会超时 
		scanf("%d", &n);
		getchar();
		for(int i=1;i<=n;++i)
        	scanf("%c",&y[i]);
        for(int i=1;i<=n;++i){
            scanf("%lld",&x[i]);
            sum[i]=0;
            x[i]+=x[i-1];
        }
        stack<int> st;
        ll s=0;
        for(int i=1;i<=n;++i){
        	int u=0;
        	if(st.size()>0){
        		if(r[y[i]]==y[st.top()])
        			u=1;
        	}
        	if(u==1){
        		sum[i]=max(0ll,sum[st.top()-1]+x[i]-x[st.top()-1]);//((())()) 
        		s=max(s,sum[i]);
        		st.pop();
        	}
        	else
        		st.push(i);
        }
        printf("%lld\n", s);
	}
    return 0;
}


从平面到立体:一张图看懂MOSFET、FinFET到GAAFET的演变史(附结构对比图) 本文深入解析了半导体晶体管从平面MOSFET到三维FinFET,再到全环绕栅极GAAFET的技术演进历程。通过结构对比图和物理原理分析,揭示了每一次创新如何解决短沟道效应等关键挑战,推动芯片性能提升。特别关注GAAFET作为最新技术突破的架构特点和性能优势。 阅读详情

相关推荐

腾讯会议+OBS虚拟摄像头:解决多人屏幕共享的终极指南(附常见问题排查)

本文详细介绍了如何利用OBS虚拟摄像头技术,解决腾讯会议中多人屏幕共享的痛点。通过将OBS作为视频混流中心,可以突破腾讯会议单屏共享的限制,实现多屏幕、多窗口内容的同步展示,并提升演示的专业度。文章涵盖了Windows与Linux双平台的配置步骤、高阶场景搭建以及常见问题(如黑屏、画中画)的排查方法,是团队协作与专业演示的实用指南。

i8j9k0l1的博客 931

求子串和的最大值

题目描述:有31,-41,59,26,-53,58,97,-93,-23,84十个数。 SUM(N,M)表示从第N个数到到第M个数的和。例如:SUM(2,3)=-41+59=18。 问:最大的和是多少?对应的N和M是多少? 要求高效,考虑数组所有可能出现的情况。 下午想了

LiuStan的专栏 1687

智能车学习日记【二】————十字和斜入十字

智能车学习日记【二】————十字和斜入十字 文章目录 智能车学习日记【二】————十字和斜入十字 前言 一、普通十字补线 二、斜入十字 1.判断是否为斜入十字和斜入十字类型 2.找斜入十字拐点 总结 前言 经过了一个多月的学习,小白的我终于也是能较稳定调出了2.8m以上的四轮车,过程中也遇到了很多困难,其中就有十字补线和斜入十字补线。尤其是斜入十字也是困扰了我快一周,现在和大家分享一下我处理斜入十字的方法(我的方法其实还有很多漏洞需要改进,仅供大家参考理解一下,欢迎各位在评论区指点出可

bsefef的博客 2740

算法之美——求子串最大和

看《编程珠玑》看的郁闷毁了~ 木有激情啊~ 这里描述第8章的一道题:求子串最大和: 一个具有n个浮点数的向量x,要求输出相邻子向量的最大和,如图: 程序返回值应为x[2..6]的总和,即187。   在这里直接给出最适合简单的解法: 从数组的最左边x[0]开始扫描,一直到最右端x[n-1]。记录所有遇到的最大总和子向量maxendinghere。数组的最大总和maxsofar的初始

小熊不去实验室 2066

3D Gaussian Splatting:用于实时的辐射场渲染

3D Gaussian Splatting:用于实时的辐射场渲染 3d gaussian splatting for real-time radiance field rendering

m0_51976564的博客 1万+

在Redroid容器中构建Frida RPC服务:自动化生成淘宝X-Sign签名参数

本文详细介绍了在Redroid容器中构建Frida RPC服务,实现自动化生成淘宝X-Sign等签名参数的完整方案。通过逆向分析定位关键方法,定制Redroid系统使Frida-Server常驻运行,并编写Frida脚本将签名方法暴露为RPC接口,最终封装为可远程调用的微服务,解决了签名生成的可移植性与工程化难题。

ice55的博客 644

算法—括号匹配深度

题目 题目描述 一个合法的括号匹配序列有以下定义: 1、空串""是一个合法的括号匹配序列 2、如果"X"和"Y"都是合法的括号匹配序列,“XY"也是一个合法的括号匹配序列 3、如果"X"是一个合法的括号匹配序列,那么”(X)"也是一个合法的括号匹配序列 4、每个合法的括号序列都可以由以上规则生成。 例如: “”,"()","()()","((()))“都是合法的括号序列 对于一个合法的括号序列我们又有以下定义它的深度: 1、空串”“的深度是0 2、如果字符串"X"的深度是x,字符串"Y"的深度是y,那么字符

shengpeizhu的博客 1350

ICC2(一)import design —— tluplus

itf转tluplus相关命令 TLUPlus是存储RC系数的二进制表格式。 TLUPlus模型通过包括宽度,空间,密度和温度对电阻系数的影响,可以估算RC计算net delay。 1.2 产生TLUplus的方法 Itf文件转TLUplus的命令: grdgenxo -itf2TLUPlus -i xx.itf-o xx.tlu+ itf: interconnect technology format file 含每层的厚度,面积等参数 itf同样可以转nxtgrd格式文...

m0_61544122的博客 5484

POJ-2955 Brackets(括号匹配问题)

题目链接:http://poj.org/problem?id=2955 这题要求求出一段括号序列的最大括号匹配数量 规则如下: the empty sequence is a regular brackets sequence, ifsis a regular brackets sequence, then (s) and [s] are regular brackets...

dong52130的博客 177

开源的预测气象大模型与数据获取/可视化

「开源气象大模型与数据获取指南」摘要: 当前主流AI气象模型(如ECMWF的AIFS、DeepMind的GraphCast、华为Pangu等)主要基于ERA5/HRES数据训练。开源资源可通过ECMWF OpenData、GitHub仓库及Google Cloud获取,其中AIFS数据采用CCBY-4.0许可可商用,其他模型多有限制性许可。典型应用流程包括:1)通过Python包获取实时预报数据;2)加载预训练权重进行推理;3)使用xarray/cartopy或Zarr进行可视化。训练数据可从CDS下载ER

专注AI大模型,软件混淆,授权 795

YOLOV26详解 从原理到部署

计算机视觉领域最具影响力的目标检测框架迎来重大里程碑。2026年1月,Ultralytics 正式发布 YOLOv26——这不是一次简单的版本迭代,而是一场面向边缘计算时代的架构重构。本专栏基于 Ultralytics 官方技术白皮书、YOLO Vision 2025 大会首发内容及国际前沿研究成果,系统拆解 YOLOv26 从算法原理到工程落地的全栈技术体系。与常规教程不同,我们聚焦与,帮助你在端侧 AI 部署的实战中掌握核心竞争力。

u012133341的博客 2022

正则表达式匹配大括号里面的内容

{[^}]+} var str = "aa ds sdf {asdf asdfag }"; var str1 = str.match(/\{[^\}]+\}/)[0]; /{[\S\s]+}/或者/{(.|\r\n)+}/ *注:\S\s可是微软文档中对\n匹配的标准用法哦 var str = "aa ds sdf {asdf asdfag }"; var str...

weixin_30627381的博客 3958

2018安徽省青少年信息学奥林匹克(AHOI)初中组

12 种合法的排列分别为:1, 3, 2, 4, 2, 3, 1, 4, 3, 1, 4, 2, 3, 2, 4, 1, 1, 3, 4, 2, 2, 3,4,1,1,4,2,3, 2,4,1,3, 4,1,3,2, 4,2,3,1, 1,4,3,2, 2,4,3,1。分为 2 组,一组的队员实力值是{4, 5, 2, 3},一组是{-4, -3, -5},其中最小的组人数为 3,可以发现没有比 3 更优的分法了。[0, 1, 1, 2]同样不是合法的分组方案,因为出现了两个实力值为 1 的选手。

weixin_42358969的博客 1143

求子串和的最大值(最慢与最快)

#include"stdio.h" int MaxSubseqSum(int a[],int n) { int ThisSum,MaxSum=0; int i,j,k; for(i=0;i<n;i++) { for(j=i;j<n;j++) { ThisSum=0; for(k=i;k<=j;k++) { ThisSum+=a[k]; printf("%d ",ThisSum); } printf("--------\n.

G00dChina的博客 313

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

求子数组的最大值

<br />/*关于子数组,就是对于一个数组,例如int A[]=2,-3,4,6,-2,4,-6,0,1 选择任意个数字,就是他的子数组,例如4,6就是他的一个子数组,而且是和最大的一项 2011.1.25 漯河 */ #include<iostream> using namespace std; template<typename T> T SelectMaxChildArray(T* Array,int Length,int &Left,int &Right) { T Sum=

Seanyxie Blog 1751

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

JAVA :在给定一个数组中,可以取得多个连续的子串。在众多子串中,求各元素和为最大值的连续子串!

在一个字符串中取得连续的子序列,并保证该序列的和为所有子序列中和为最大值。 思想:通过键盘录制获取要进行检测的数字串,其中包括正数,负数。定义一个全局变量top赋值为零,另外定义两个全局变量记录子串的位置(起始点与终点)利用循环将数组的各元素累加到top中,直到top import java.util.Scanner; //和最大的子串 public class ZichuanQiuhe {

嘻嘻的博客 3432

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

2018校招真题【牛客网】练习(七)

1、最后一位 题目描述 牛牛选择了一个正整数X,然后把它写在黑板上。然后每一天他会擦掉当前数字的最后一位,直到他擦掉所有数位。 在整个过程中,牛牛会把所有在黑板上出现过的数字记录下来,然后求出他们的总和sum. 例如X = 509, 在黑板上出现过的数字依次是509, 50, 5, 他们的和就是564. 牛牛现在给出一个sum,牛牛想让你求出一个正整数X经过上述过程的结果是sum. 思路: abc...

xiaowei_innocence的博客 890

统计字符串中出现最多次数的数字,并且求出数字与次数的乘积。

在牛客网Android的板块上看到一道题目,题目描述:给定一个字符串,假设为str = “a12b14aa18bb12cc14xx78eeeeeeeee12”,求出这个字符串中的每个数字出现的次数,求出出现最多次次数的数字与次数的乘积。 结果是 12 出现了 3次   所以结果是 36,题目大概就是这个样子。分析: 在JAVA中提供了关于很多字符串的操作方法,在这道题目中大概我用了,正则表达式,字...

清风半夜鸣蛙 1098

求子串

问题:STL学得真不过关啊 ,用到时就像不起来, while(cin.get(c))在结束时,先换行,即按下回车键,在按ctl+z键,代码是看了别人之后,自己重写的。 STL还是要好好学,真的很有用,可以吧复杂的问题变得简单。 代码: #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; ...

weixin_34268843的博客 117

正则表达式匹配最外层大括号里面的内容;匹配最内层大括号里面的内容

不管什么都要记录一下,也是服了我自己 对正则表达式不了解,遇到一个问题需要匹配最外层大括号的内容,绞尽脑汁,无果 后来解决了: female{{initiator} updated {person}’s role to {role}} 最外层正则表达式: (?<=\{).*(?=\}) 共找到 1 处匹配: {initiator} updat...

weixin_30764137的博客 4729

java查找字符串中包含子字符串的个数,灵活运用String方法,3种方法的代码实现!

第一种方法: 灵活运用split方法!直接把子字符串作为split的参数传进去,看看原字符串被分割成了几部分,得到的String数组的length。 然后length - 1就是 需要查询的子字符串的个数。 public class TestSearch2 { public static void main(String[] args) { // 随机写了一些字母,并且把java字符串穿插进去 String s = "jafdasfjavarerrajavafregjavatte

weixin_46362547的博客 7573

括号匹配深度 与 栈的使用

牛客网这一题的题干如下: 输入描述: 输入包括一个合法的括号序列s,s长度length(2 ≤ length ≤ 50),序列中只包含’(‘和’)’。 输出描述: 输出一个正整数,即这个序列的深度。 然后我们再来看下对于"合法的括号序列"的定义 1、空串"“是一个合法的括号匹配序列 2、如果"X"和"Y"都是合法的括号匹配序列,“XY"也是一个合法的括号匹配序列 3、如果"X"是一个合法的括号匹配序列,那么”(X)“也是一个合法的括号匹配序列 4、每个合法的括号序列都可以由以上规则生成。 例如:

yytoo2的博客 403

输出字符串中匹配最多的括号数

【java】输出字符串中匹配最多的括号数欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导...

weixin_43376523的博客 670

[算法]-括号匹配深度

思路:由于输入的是合法的括号序列,运用栈的思想,每次进入一个左括号,一个暂存量一定是+1的,每当进入一个右括号,就得和之前的左括号进行抵消,于是这个暂存量就-1了,最大深度通过max函数求得暂存量和当前深度的最大值即可。 通俗的来说就是遍历字符串 记录最大’连续’左括号数量,遇到右括号要相应消去一个左括号数量 ,由于题目输入是合法的 所以最大’连续’左括号数量就是这个序列的深度。 #includ...

隔壁老王三金的博客 1180

合法括号匹配问题(深度,方案个数)已AC

合法括号满足的条件为左边第一个括号必须为(  其次满足(个数等于)个数,这样称为合法括号例如:()    ((()))  (()())了解了合法括号之后,先来看第一个 合法括号的深度问题例题1对于一个合法的括号序列我们又有以下定义它的深度:1、空串""的深度是02、如果字符串"X"的深度是x,字符串"Y"的深度是y,那么字符串"XY"的深度为max(x,y) 3、如果"X"的深度是x,那么字符串".

Nixo 4468

每日一题(16)——求子串最大积&最大和

求子串最大积                                                                        问题: 给定一个长度为N的整数数组, 只允许用乘法, 不能用除法, 计算任意 (N-1)个数的组合乘积中最大的一组,并写出算法的时间复杂度。 解法1. •我们把所有可能的(N-1)个数的组合找出来,分别计算它们的乘积,并比较大小。由于

小熊不去实验室 1800
上一篇: hdu 5247 找连续数(灵活,超时题)
下一篇: CF 549G swap(前-1,后+1),问是否能变成递增序列(灵活题)
ccyy-
博客等级 码龄12年 31粉丝 244原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值