小Y 最近开始学习算法姿势,但是因为小R 非常BB,给了她很多B6 题,所以她觉得自己已经没有什么前途了。

于是小R 给了她一些稍微简单的题,让她觉得已经没有什么好害怕的了,其中一道是这样的:

给定一个长度为n 只包含左括号和右括号的序列,现在小R 想要知道经过每一个位置的合法子串有多少个。

空串是一个合法的串,如果A 和B 都是合法的串,那么(A) 和AB 都是合法的串。 n<=1000000

又是差分的题目,非常坑

先给括号配对,让后记一对合法的括号为[l,r)

我们分别按顺序和倒序处理每对括号[l,r)

对于括号[l,r)我们先对区间[l,r)加上1,让后考虑它的影响

若l是另一对括号[l',r')的右端点(r'=l)那么显然这里的[l,r)贡献可以全部加过去

若r是另一对括号[l',r')的左端点,那么显然也可以把[l,r)的贡献全加过去

不合法的括号位置会自动抵消

#pragma GCC optimize("O3")
#pragma G++ optimize("O3")
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define N 1000010
#define M 1000000007
using namespace std;
long long ans,f[N]; char s[N];
int n,m,t,w[N],l[N],r[N],cl[N],cr[N];
int _18520(){scanf("%s",s+1); n=strlen(s+1);for(int i=1;i<=n;++i)if(s[i]=='(') w[++t]=i;else if(t){ r[w[t]]=i+1; l[i+1]=w[t--]; }for(int i=n+1;i;--i) cr[l[i]]+=++cr[i];for(int i=1;i<=n;++i) cl[r[i]]+=--cl[i];for(int i=1;i<=n;++i) f[i]=f[i-1]+cl[i]+cr[i];for(int i=1;i<=n;++i) ans=ans+i*f[i]%M;printf("%lld\n",ans);
}
int main(){int T; for(scanf("%d",&T);T--;_18520()){memset(f,0,N<<3);memset(l,0,N<<2);memset(r,0,N<<2);memset(cl,0,N<<2);memset(cr,0,N<<2);t=ans=0;}
}

转载于:https://www.cnblogs.com/Extended-Ash/p/9477153.html

Jzoj4209 已经没有什么好害怕的了相关推荐

  1. 欢乐纪中某B组赛【2019.1.21】

    前言 成功翻车 成绩 RankRankRank是有算别人的 RankRankRank PersonPersonPerson ScoreScoreScore AAA BBB CCC 141414 201 ...

  2. vim block vim_如何不再害怕Vim

    vim block vim 精选最流行的命令以及如何使用它们 (A curation of the most popular commands and how to use them) If you' ...

  3. git 代理 git_如何不再害怕GIT

    git 代理 git 了解减少不确定性的机制 (Understanding the machinery to whittle away the uncertainty) 到底什么是Git? (What ...

  4. 为什么我害怕数据结构学得好的程序员?

    我害怕数据结构学得好的程序员,一跟他们讨论技术,我就感觉自己不是程序员,仅仅是在搬砖维持生活. 我所拥有的编程技巧是什么?不就是每个程序员都会的,对数据库的增删改查吗?每一个初入职场的程序员都会.但数 ...

  5. 华为,你终于活成了他们害怕的样子

    微信改版,加星标不迷路! 作者 | 素衣回中原 来源 | HUGO(ID:microhugo) 今天这篇文章是叔想为中国一家企业一个品牌好好说几句话,前几日华为的事你们都知道了吧,华为公司的负责人(任 ...

  6. 总线控制内部eep_【上周回顾】小白如何自学单片机;电子专业的十个神总结;摩尔定律54年;电子工程师常弄混的总线分类汇总;他做成了半导体害怕他做的事...

    往期动态: 1.他60岁回国,做成了半导体行业都害怕他做成的事... 2.教你4招,小白如何自学单片机,绝对管用! 3.电子工程师常弄混的总线分类汇总,你中招了吗? 4.摩尔定律54年:他是如何在实验 ...

  7. 害怕离职,侧面说明大多数是离职了没人要的废物?

    有人害怕离职,年龄越大,越害怕离职.有网友在职场论坛犀利评论,称害怕离职,侧面说明大多数是离职了没人要的废物.但这一偏激的观点引起了众网友的热议和批判. 有网友如此回击这口毒鸡汤:害怕死亡,害怕痛苦, ...

  8. 连岳读书|这是不让人害怕的数学,课堂上学不到的数学!

    本文首发:一句日历已获得授权,转载需联系原文. "数学虐我千百遍,我待数学如初恋",相信许多人都用这句话调侃过自己和数学的关系. 各种公式.定理.几何图形,一看就会,一做就废,久而 ...

  9. 这个人工智能强到让人感到害怕

    这个月,OpenAI 公布已久的 GPT-2 终于是在放出了两个能够供研究人员研究的模型,两个模型的大小不同,一个是小型模型,一个是中型模型,其中中型模型包含 3.45 亿参数. GPT-2 是 Op ...

最新文章

  1. vs2008添加excel类编译错误解决方法
  2. YbtOJ-序列计数【组合数学,莫队】
  3. oracle临时表空间占用率过高,ORACLE 临时表空间使用率过高的原因及临时解决方案...
  4. 【项目管理】技术债务
  5. 12096 - The SetStack Computer
  6. Hive之函数与自定义函数
  7. HttpClient Get请求实例
  8. WPF 文字换行TextWrapping 显示不全用省略号TextTrimming 显示不全弹提示内容ToolTip
  9. python人口普查数据数据分析_美国人口普查数据可视化探索和收入水平预测建模...
  10. MATLAB安装破解教程(内涵所需文件)
  11. Postman 安装
  12. 硬盘录像机常见问题解答硬盘录像机故障解决
  13. java首行缩进两个字符,都是首行缩进2字符,为什么缩进又不相同.d – 手机爱问...
  14. 微信字号调整问题 html,解决h5 开发 ,设置手机字体大小微信设置字体大小 页面变形问题...
  15. 创建简易的金融数据库
  16. 浅谈微信小程序对于创业者,意味着什么?
  17. MySQL--函数--使用/示例
  18. 高版本CAD画直线时,点击F8正交卡死解决方法
  19. 【codeforces 718E】E. Matvey's Birthday
  20. PaddleOCR新发版v2.2:开源版面分析与轻量化表格识别

热门文章

  1. jquery日历插件 途牛_jquery日历插件SimpleCalendar
  2. JAVA中一维数组的作用,JAVA中一维数组和二维数组的定义
  3. java方法6_6.1 JAVA方法入门
  4. 怎么监控一个接口的传输数据_监控安装超详细教学教程,学会又多一门技能
  5. vue中computed和methods区别
  6. Unable to instantiate Action,
  7. 网页制作遵循四大原则让网站建设更加优质
  8. camera客观测试_光学图像测试之屏幕色彩管理测试
  9. WeakReference回收问题
  10. 一行代码快速搞定Flowable断点下载(上)