连续段计数问题小记

给定一个长度为 \(n\) 的一个排列,如果区间 \([l,r]\) 之间的数是连续的,那么我们称这个区间时一个连续段。

比如 \([1,3,2,5,4]\) 中的连续段有:\([1,1],[1,3],[1,5],[2,2],[2,3],[2,5],[3,3],[4,4],[4,5],[5,5]\)

这些连续段有一个共同的特点:区间长度等于值域大小,即 \(\max-\min+1=r-l+1\)

移项可得:\(\max-\min-r+l=0\),判断是否为连续段就采用的是这种方法。

有一些题目会询问关于连续段的问题,很多都是数区间个数。数区间个数的问题一般可以分治固定端点,下边就采用了固定端点的方法,枚举右端点,处理所有左端点的询问。

由于上面我们需要通过维护 \(\max,\min\) 维护每个左端点。前面的 \(\max,\min\) 可以用单调栈维护,整体用线段树记录。

那么我们就来看一些具体问题吧!

CF526F Pudding Monsters

给定长度为 \(n(n\le 3\times 10^5)\) 的排列,求其中连续段数量。

枚举右端点,用单调栈更新左端点,每次询问 \(0\) 的个数。

CF997E Good Subsegments

给定长度为 \(n(n\le 1.2\times 10^5)\) 的排列,有 \(q(q\le 1.2\times 10^5)\) 次询问,每次询问一段区间 \([l,r]\) 内的连续段数量。

好像是上一题的严格加强版捏。

其他和上面一模一样,我们还需要维护历史答案,那就改改线段树吧!

如果直接维护 \(0\) 的个数会比较麻烦,但是题目中有一个重要的性质保证给定的是排列。这表示 \(\max-\min-r+l\) 一定 \(\ge 0\)只有区间最小值会被减为 \(0\)。那么记下最小值和次数即可。

具体维护以下信息:

  • 当前区间最小值 \(valnowmin\)
  • 当前区间最小值个数 \(cntnowmin\)
  • 当前增加值 \(vallaz\)
  • 这个区间有多少次最小值到达了 \(0\) 但子节点里没有计入答案 \(pushed\)
  • 答案数量 \(ans\)

每移动一次右端点记录给整棵树加一次 \(pushed\) 即可。

P4747 [CERC2017]Intrinsic Interval

咕咕咕ing

P6795 [SNOI2020] 排列

咕咕咕ed

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/317955.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET Core 3.0 特性初探:C# 8、WPF、Windows Forms、EF Core

.NET Core 的下一个主要版本最近进入了预览阶段,.NET Core 3.0 将支持使用 Windows Presentation Foundation (WPF)、Windows Forms(WinForms)、Entity Framework (EF)、Blazor、 C# 8 和.NET S…

任意长度循环卷积单位根反演 学习笔记

今天听 \(\texttt{m}\color{red}{\texttt{yee}}\) 嘴的,赶紧来补个学习笔记。 PS:FFT 本质是长度为 \(2^k\) 的循环卷积。 单位根反演 反演本质: \[\frac1n\sum_{i0}^{n-1}\omega_{n}^{ai}[n|a] \]证明: 如果 \(n|i\),…

YBTOJ洛谷P4074:糖果公园(树上莫队)

文章目录解析update:代码所谓树上莫队,就是在树上的莫队 (逃) 传送门 解析 似乎就是树上的这道题 考虑如何转化为序列问题呢? 考虑dfs序 但是又一个问题。。。 似乎这条链的dfs序不连续啊 树剖一下就好啦 考虑更阳间的方法 求出这棵树的欧…

ARC115D-Odd Degree【dp,欧拉回路】

正题 题目链接:https://atcoder.jp/contests/arc115/tasks/arc115_d 题目大意 给出nnn个点mmm条边的一张无向图,对于每个k∈[1,n]k\in[1,n]k∈[1,n] 求恰好有kkk个奇数入度点的生成子图数量。 1≤n,m≤50001\leq n,m\leq 50001≤n,m≤5000 解题思路 考虑有kkk个奇…

【用梨泰院class中的财阀世家带你洞悉替罪羊树】Scapegoat Tree原理,模板,例题

我想写在前面,本文财阀世家全是虚构,没有诋毁之意,如有雷同,纯属巧合 红色预警!!!红色预警 文章目录Scapegoat Tree概念模板变量声明Bad函数判断是否需要重构理解模板rebuild重构理解模板inser…

领域驱动设计,让程序员心中有码(五)

1 从搬砖谈领域对象有一个古老的故事,大概是这样的。作者问三个建筑工地上的工人他们在干什么?有一个没精打采的说,我在挖洞!而另一一个人却说,我在盖一座房子。还有一个人说,我在建立一座巨大的城市。…

spoj Favorite Dice(概率dp+期望)

题意: 摇一个n面的骰子,问每一面都被摇到的次数期望是多少。 题解: 概率dp往往都是倒着推 我们设dp[x]表示已经摇到了x个面,还要摇的概率次数 那么dp[n] 0(即一次还没摇) dp[0]就是答案 对于dp[i],我们考虑当前已经摇到i个面&…

AT3968-[AGC025E] Walking on a Tree【构造】

正题 题目链接:https://www.luogu.com.cn/problem/AT3968 题目大意 给出nnn个点的一棵树,然后给出mmm条路径。每条边的权值是它是否又被正向经过是否又被反向经过,给每条路径定向使得所有边的权值和最大。输出方案。 1≤n,m≤20001\leq n,m\leq 20001≤…

CF512D Fox And Travelling(DP 计数)

CF512D Fox And Travelling 给定一张 \(n\) 个点 \(m\) 条边的无向图,每次选择一个叶子结点并将它和连接它的边删除。 对于每个 \(k\in[0,n]\),问有序选择 \(k\) 个点的方案数。 \(n\le 100\)。 显然如果有环,那么所有环上的点都无法被选择&a…

.NET Core实战项目之CMS 第十四章 开发篇-防止跨站请求伪造(XSRF/CSRF)攻击处理...

通过 ASP.NET Core,开发者可轻松配置和管理其应用的安全性。 ASP.NET Core 中包含管理身份验证、授权、数据保护、SSL 强制、应用机密、请求防伪保护及 CORS 管理等等安全方面的处理。 通过这些安全功能,可以生成安全可靠的 ASP.NET Core 应用。而我们这…

模板:左偏树

文章目录解析可以解决的问题定义:左偏树的基本性质基本结论操作合并访问与删除堆顶元素插入元素批量插入删除已知元素所谓左偏树,就是往左偏的树 下面介绍一下它的一个兄弟: 《右偏树》 (逃) 解析 所谓左偏树&#…

迎开学水题狂欢赛(舞踏会[dp+三叉树],HH去散步[矩阵快速幂],排序[模拟],铁路旅行[线段树])

快速简单记录老师口胡(可能就我自己看得懂了吧…) 文章目录T1:舞踏会titlesolutioncodeT2:HH去散步titlesolutioncodeT3:排序titlesolutioncodeT4:铁路旅行titlesolutioncodeT1:舞踏会 title …

P2619 [国家集训队]Tree I(K 度限制生成树 二分)

P2619 [国家集训队]Tree I 一张 \(n\) 个点 \(m\) 条边的带权无向联通图,每条边是黑色或白色。求一棵最小权的恰好有 \(need\) 条白色边的生成树,题目保证有解。 \(n\le 5\times 10^4,m\le 10^5,val\in[1,100]\)。 \(\color{yellow}{\bigstar\texttt{Tri…

CSP2021提高组复赛解析

前言 终于出成绩了我可以写博客辣,官方数据还没出就先放洛谷的题目链接了。 正题 T1-廊桥分配 https://www.luogu.com.cn/problem/P7913 题目大意 有m1m_1m1​种一类飞机,m2m_2m2​种二类飞机,每个飞机有一个占用时间的区间。要给两类飞机…

一起开心集训队第一周训练赛2021/3/14

文章目录比赛链接A CodeForces 1481D AB Graph题意:题解:代码:B CodeForces 1481E Sorting Books题意:题解:代码:C CodeForces 1478D Nezzar and Board题意:题解:代码:D …

9.27模拟:至暗时刻

黑暗使人清醒 前言 15pts 00150 总的来说,就是能切的没切掉,不该挂的分全挂了 呜呜呜 考场 先看题 有构造专题那味了 感觉题目都好奇怪啊… 似乎T1看起来相对比较水的样子 T2感觉可能是奇怪的模型,也许可做? T3这是甚么玩意。。…

使用Azure DevOps持续集成GitHub项目

点击蓝字关注我微软的Azure DevOps是一款软件开发管理工具,整合了需求、代码、编译、测试、发布等所有功能于一身。今天我们就来看看如何用Azure DevOps对自己GitHub上的项目做持续集成,并能在GitHub显示最新编译状态。其实在不久之前,Azure …

[BZOJ 3811]玛里苟斯(线性基)尽量理解的题解

文章目录titlesolutioncodetitle 魔法之龙玛里苟斯最近在为加基森拍卖师的削弱而感到伤心,于是他想了一道数学题。 S 是一个可重集合,S{a1,a2,…,an}。 等概率随机取 S 的一个子集 A{ai1,…,aim}。 计算出 A 中所有元素异或和,记为 x, 求 x^…

CF464E The Classic Problem(线段树 最短路)

CF464E The Classic Problem \(\bigstar\texttt{Hint}\):发现没有什么好的突破口?为什么不想想怎样才能实现题目中 \(2^x\) 的加减法呢? 可见每次加减法,我们要做的是将添加的 \(1\) 和右边的连续的 \(1\) 合并为一整段&#xff0…

9.28模拟

fuckingqytandAstaAKIOI\texttt{fucking qyt and Asta AK IOI}fucking qyt and Asta AK IOI 前言 200pts(lemon)01001000 340pts(996)10010010040 T4是lemon的数据锅掉了 T1本地洛谷996都能过,lemon蜜汁RE。。。 枯了…