【JZOJ4209】已经没有什么好害怕的了【差分】

LPDDR6来了!带你一文看懂它和LPDDR5/5X的差距 + 技术演进逻辑全解析 🧠从速率到架构,从总线宽度到协议设计,LPDDR6 每一个改动都不是拍脑袋做的,它针对的是AI / HPC / 云计算 / 下一代笔记本平台的真实需求。作为工程师的我们,不仅要“用得上”,更要“测得准”,因为没有测试验证,就没有量产落地!🎯LPDDR6不是未来,而是现在进行时! 阅读详情

题目大意:

题目链接:https://jzoj.net/senior/#main/show/4209
给出一个括号序列,设 a n s i ans_i ansi​表示经过 i i i的合法的串,合法的串指所有括号都可以匹配且没有穿插。


思路:

设 n e x t [ i ] next[i] next[i]表示与(前括号) i i i相匹配的后括号位置, l a s t [ i ] last[i] last[i]表示与(后括号) i i i相匹配的前括号的位置。这个可以用栈 O ( n ) O(n) O(n)求出。
假设这个序列是这样的
( ) ) ( ( ( ) ) ( ) ) ( ( ) ) ())((())())(()) ())((())())(())
先只看最外层的括号
( ) ) ( . . . . . . ) ( . . . . . . ) ())(......)(......) ())(......)(......)
将无用的括号分离
( )   ∣   ( . . . . . . ) ( . . . . . . ) ()\ |\ (......)(......) () ∣ (......)(......)
会发现,每个括号所影响到的组数是递增的。
而每个后括号影响是递减的。
于是就用差分维护。
然后对于括号内的,再递归求解即可。
每个括号最多访问两次,时间复杂度 O ( n ) O(n) O(n)。


代码:

#include <cstdio>
#include <stack>
#include <cstring>
#include <iostream>
using namespace std;
typedef long long ll;

const int MOD=1000000007;
const int N=1000010;
int T,len,next[N],last[N];
char ch[N];
ll sum[N],ans;

void work1(int l,int r)  //前括号差分
{
	if (l>r) return;
	ll k=0;
	for (int i=r;i>=l;i--)
		if (last[i])
		{
			work1(last[i]+1,i-1);  //递归
			k++;
			sum[last[i]]+=k;
			i=last[i];
		}
		else k=0;
}

void work2(int l,int r)  //后括号
{
	if (l>r) return;
	ll k=0;
	for (int i=l;i<=r;i++)
		if (next[i])
		{
			work2(i+1,next[i]-1);
			k++;
			sum[next[i]+1]-=k;
			i=next[i];
		}
		else k=0;
}

int main()
{
	scanf("%d",&T);
	while (T--)
	{
		memset(sum,0,sizeof(sum));
		memset(next,0,sizeof(next));
		memset(last,0,sizeof(last));
		memset(sum,0,sizeof(sum));
		scanf("%s",ch+1);
		len=strlen(ch+1);
		stack<int> s;
		for (int i=1;i<=len;i++)
			if (ch[i]=='(') s.push(i);
				else if (s.size())
				{
					next[s.top()]=i;
					last[i]=s.top();  //利用栈求
					s.pop();
				}
		work1(1,len);
		work2(1,len);
		ans=0;
		for (int i=1;i<=len;i++)
		{
			sum[i]+=sum[i-1];
			ans+=sum[i]*(ll)i%MOD;
		}
		cout<<ans<<endl;
	}
	return 0;
}
jdk-8u144-linux-x64.tar.gz. 该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包 立即下载

相关推荐

Android 集成Chrome 浏览器内核 Crosswalk

Crosswalk 内核的兴起与消亡 Android 4.4 版本之前,使用的是基于 androidWebKit 的 WebView 但实际上,由于 Android 的碎片化问题(大量存在不同的 Android 系统版本,并且各个厂商对内置应用进行定制化,有可能用的不是最新的浏览器内核)。这就导致 WebView 在真实环境中对 API 的支持根本无迹可寻,越发混乱。 随着混合开发的兴起,前端对 ...

司马懿的西山居 2万+

JZOJ Day4 B组 T2【五校联考1day1】已经没有什么好害怕的了

题目大意: 小Y 最近开始学习算法姿势,但是因为小R 非常BB,给了她很多B6 题,所以她觉得自己已经没有什么前途了。于是小R 给了她一些稍微简单的题,让她觉得已经没有什么好害怕的了,其中一道是这样的: 给定一个长度为n 只包含左括号和右括号的序列,现在小R 想要知道经过每一个位置的合法子串有多少个。 空串是一个合法的串,如果A 和B 都是合法的串,那么(A) 和AB 都是合法的串。 解题思路:...

owo 271

银河麒麟系统安装redis【亲测可行】

架构:Linux 5.10.0-9-generic x86_64 GNU/Linux。redis版本:redis-6.2.3.tar.gz。然后在执行make install,结束;OS:银河麒麟V10(SP1)未激活。cpu:I5-10代;

lx_nhs的博客 3332

2019.01.21【NOIP提高组】模拟 B 组

迟到的解题报告JZOJ 4208 线段树什么的最讨厌了题目分析代码JZOJ 4209 【五校联考1day1】已经没有什么好害怕的了题目分析代码JZOJ 4210 【五校联考1day1】我才不是萝莉控呢题目分析 JZOJ 4208 线段树什么的最讨厌了 题目 询问多段区间,是否存在一个[0∼n][0\sim n][0∼n]的线段树为该区间 分析 那么区间[l∼r][l\sim r][l∼r]可以扩...

lemondinosaur的博客 420

电磁兼容标准体系解析:从基础到认证的完整指南

本文系统解析了电磁兼容(EMC)标准体系,从基础概念到认证流程提供完整指南。文章阐述了EMC对于产品可靠性与市场准入的重要性,详细拆解了基础标准、通用标准、产品类标准及认证流程四层结构,并结合5G设备与工业控制等实战案例,为工程师提供了从设计初期到认证测试的高效应用策略。

weixin_29294975的博客 355

从零开始学Agent的搭建——多角色项目需求分析框架实战

场景一:电商促销需求——技术细节顾此失彼团队用单Agent分析一个"双11秒杀系统"的需求。Agent输出了完整的功能清单,但当我们拿着这份方案找架构师评审时,发现了致命问题:Agent完全没有考虑库存扣减的并发一致性、Redis与MySQL之间的数据同步延迟、以及超卖风险的控制策略。原因是单Agent在处理"业务理解"任务时,已经耗尽了它的"注意力预算",技术深度分析几乎为空。场景二:ERP集成需求——跨系统边界模糊。

软件行业技术文化交流。 534

Jzoj4209 已经没有什么好害怕的了

小Y 最近开始学习算法姿势,但是因为小R 非常BB,给了她很多B6 题,所以她觉得自己已经没有什么前途了。 于是小R 给了她一些稍微简单的题,让她觉得已经没有什么好害怕的了,其中一道是这样的: 给定一个长度为n 只包含左括号和右括号的序列,现在小R 想要知道经过每一个位置的合法子串有多少个。 空串是一个合法的串,如果A 和B 都是合法的串,那么(A) 和AB 都是合法的串。 n&lt...

dianning8393的博客 278

Linux 内核参数:meminfo

内存管理是一个相对复杂的内核模块,错综复杂的数据结构和管理逻辑。Linux 内核为了帮助开发者从宏观上把握内存的使用情况,在几大核心数据结构中都有相应的计数统计,如物理页面使用情况、伙伴系统分配情况、内存管理区的页面使用情况、内存回收扫描回收情况、内存规整触发情况等等。本文要分析的节点meminfo是Linux 操作系统中查看系统内存最准确(meminfo 中有内存黑洞)的方法,它包含当前时刻系统的所有物理页面的信息。

私房菜 2413

【差分】JZOJ_4209 已经没有什么好害怕的了

题意 给出一个括号字符串。 空串是一个合法的串,如果AAA是一个合法的串,那么(A)(A)(A)也是一个合法的串。如果BBB也是一个合法的串,那么ABABAB也是一个合法的串。 令ansians_iansi​为经过第iii个位置的子串个数,求 思路 我们可以用差分然后求前缀和的方法做。 对于每个合法的串,我们可以把它两侧的合法的串的贡献加上去。减的时候也把它们减去。如果遇到不匹配的括号它会自动抵消...

GOODPLACE 412

基于深度学习的涂胶缺陷类型检测:数据集处理与YOLOv8模型实现

本文提出了一种基于YOLOv8深度学习的涂胶缺陷检测系统,针对断胶、溢胶、缺胶、气泡及胶条宽度异常等常见缺陷类型,实现了从数据采集到模型部署的完整解决方案。系统采用工业相机采集涂胶图像,通过多形态数据增强策略解决样本稀缺问题,利用YOLOv8框架实现高效检测。相比传统人工目检和规则式机器视觉方法,该系统在检测精度(mAP达97.5%)和实时性(单图检测耗时0.038秒)方面表现优异,可满足智能制造场景下的涂胶质量检测需求。

huanghm88的专栏 271

本地快速部署谷歌开放模型Gemma教程(基于Ollama)

谷歌最近发布了新一代开源AI模型Gemma,此次发布的 Gemma 相比自家的 Gemini 更加轻量级,模型权重也一并开源。不仅可以在笔记本电脑上运行,而且还免费可商用,支持中文。运行速度飞快。

特立独行的博客 6716

[差分][栈]JZOJ 4209 已经没有什么好怕的了awa

Description 小Y 最近开始学习算法姿势,但是因为小R 非常BB,给了她很多B6 题,所以她觉得自己已经没有什么前途了。于是小R 给了她一些稍微简单的题,让她觉得已经没有什么好害怕的了,其中一道是这样的:给定一个长度为n 只包含左括号和右括号的序列,现在小R 想要知道经过每一个位置的合法子串有多少个。空串是一个合法的串,如果A 和B 都是合法的串,那么(A) 和AB 都是合法的串。...

weixin_34008805的博客 224

Hermes接入IMA知识库全攻略:将知识库装进你的Hermes智能体

本文详细介绍了如何将IMA知识库功能接入Hermes Agent平台,实现一站式笔记管理和知识库操作。主要内容包括:获取IMA访问凭证、下载技能包、配置凭据(支持文件和环境变量两种方式)、验证配置有效性,以及实际应用演示(查询知识库列表、创建笔记并添加到知识库)。文章还提供了常见问题解决方案,如认证失败处理、版本更新等。通过该集成,用户可在Hermes中直接调用IMA的笔记创建、知识库管理等强大功能,提升工作效率。

小石头的专栏 641

jzoj4209-已经没有什么好害怕的了【差分】

正题 题目大意 ansians_iansi​表示包含字符iii的括号匹配子串个数 求∑i=1n(ansi∗imod&amp;ThinSpace;&amp;ThinSpace;(1e9+7))\sum_{i=1}^n(ans_i*i\mod (1e9+7))i=1∑n​(ansi​∗imod(1e9+7)) 解题思路 计算出每个匹配括号的前一个括号位置和后一个括号位置。 一个差分数组 先计算加的...

QuantAsk 555

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

[差分约束][栈] Jzoj P4209 已经没有什么好害怕的了

Description 小Y 最近开始学习算法姿势,但是因为小R 非常BB,给了她很多B6 题,所以她觉得自己已经没有什么前途了。于是小R 给了她一些稍微简单的题,让她觉得已经没有什么好害怕的了,其中一道是这样的:给定一个长度为n 只包含左括号和右括号的序列,现在小R 想要知道经过每一个位置的合法子串有多少个。空串是一个合法的串,如果A 和B 都是合法的串,那么(A) 和AB 都是合法的串。...

weixin_30477293的博客 124

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

[jzoj 4209] 【五校联考1day1】已经没有什么好害怕的了 {差分}

题目 Description 小Y 最近开始学习算法姿势,但是因为小R 非常BB,给了她很多B6 题,所以她觉得自己已经没有什么前途了。于是小R 给了她一些稍微简单的题,让她觉得已经没有什么好害怕的了,其中一道是这样的: 给定一个长度为n 只包含左括号和右括号的序列,现在小R 想要知道经过每一个位置的合法子串有多少个。 空串是一个合法的串,如果A 和B 都是合法的串,那么(A) 和AB 都是合法的...

Nowed 487

JZOJ 4209. 【五校联考1day1】已经没有什么好害怕的了

...题目:分析:代码: 题目: 传送门 分析: 一眼看出正解但就是打不AAA系列 感觉用了差分思路就很明显了,在左括号的地方+1+1+1在右括号的后一位−1-1−1(差分数组) 代码: #pragma GCC optimize(3) #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cmath&gt; #include&...

qq_35786326的博客 311

JZOJ4209.已经没有什么事了呢(Standard IO)

\[Description\] 小Y 最近开始学习算法姿势,但是因为小R 非常BB,给了她很多B6 题,所以她觉得自己已经没有什么前途了。于是小R 给了她一些稍微简单的题,让她觉得已经没有什么好害怕的了,其中一道是这样的: 给定一个长度为n 只包含左括号和右括号的序列,现在小R 想要知道经过每一个位置的合法子串有多少个。 空串是一个合法的串,如果A 和B 都是合法的串,那么(A) 和AB 都是合法...

weixin_30832405的博客 190

欢乐纪中某B组赛【2019.1.21】

前言 成功翻车 成绩 RankRankRank是有算别人的 RankRankRank PersonPersonPerson ScoreScoreScore AAA BBB CCC 141414 2017hzb2017hzb2017hzb 808080 303030 000 505050 141414 2017wyc2017wyc2017wyc 808080 000 30303...

QuantAsk 488

2019.01.21【NOIP提高组】模拟 B 组 总结

题目 今天本以为拿下个好成绩,一鸣惊人,第一题原先打算打一个二分(作基础),结果舞弄了一个小时,才发现数据不满足单调性,(我竟然明明知道时间不够,还无聊地对拍开来)只能勉强拿个暴力就走掉。然后有因为语文水品太差了,第二道题目竟然不会理解(连30分的暴力分都扔掉了!!!)。第三题呢,想了一想,发现B数组是前缀和,图有点儿像树状数组(鉴于水平太差,只能观望)。然后呢? 感觉第三题可以打部分分...

Nowed 522

2019.1.21【NOIP提高组】模拟B组 总结

纪中Day 4,Rank 14,同届Rank 1,+NOIP Rank 2

Ajwallet 438

【五校联考1day1】已经没有什么好害怕的了

此题需: 分治,查分 首先要知道,除了(),()()这样的是合法的,(()(()))()这样复杂的串,也是合法的。 要申清题意。 每个左括号都至多有一个匹配的右括号,所以我们可以 先用一个栈预处理出tail[] 和 bz[]数组。 bz[i]表示如果i是左括号,有无与之匹配的右括号。 tail[i]表示在bz[i]==1 的基础上,i这个左括号所对应的右括号位置编号 先把s从左到右扫一遍先算一遍“...

Com_man_der的博客 470

【BZOJ3622】已经没有什么好害怕的了(动态规划,容斥)

【BZOJ3622】已经没有什么好害怕的了(动态规划,容斥) 题面 BZOJ 题解 很明显的,这类问题是要从至少变成恰好的过程,直接容斥即可。 首先我们要求的是(糖果>药片)=(药片>糖果)+k,再加上保证不存在相同的数, 所以(糖果>药片)+(药片>糖果)=n,解出(糖果>药片)=\(\frac{n+k}{2}\)。 此时我们要求的至少就是“至少存在\(i\)对(糖...

weixin_30521649的博客 162
上一篇: 【JZOJ4208】线段树什么的最讨厌了【搜索】
下一篇: 【USACO2.4】解题报告
stoorz1023
博客等级 码龄9年 101粉丝 595原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值