CF2101D

news/2025/11/12 22:07:51/文章来源:https://www.cnblogs.com/xhr0817-blog/p/19215640

给定一个长度为 \(n\) 的排列 \(a\),问其有多少个子串 \(b\),使得 \(LIS(b) + LDS(b) = |b| + 1\)

\(n \le 2 \times 10^5\)

考虑一下题目给的条件在说啥,其实就是每个元素都在 \(LIS/LDS\) 中,只有一个相交的地方(因为时排列),类似一个 "X" 形。

这个相交的点看起来就是这个构图的关键:就是这个交点 \(x\),找到最小的 \(l\) 和最大的 \(r\) 满足 \(l \le x \le r\) 且满足条件即可,然后贡献是 \((x - l + 1)(r - x + 1)\)

因为 \(l, r\) 是独立的,假设现在求 \(l\)

对于 \(< x/> x\) 的元素分开考虑,对于\(< x\) 的元素,其实就是找到一个最大的 \(y\) 满足 \(a_y < a_{y - 1} < a_x\)(其实应该是找到一个 \(z\),满足 \(a_z < a_x\)\(\min \{ a_{z + 1} a_{z + 2}, \dots a_{i - 1} \} < a_z\),化简一下就是前面那个)。

用个单调栈维护 \(a_{y} < a_{y - 1}\) 的位置,搞个前缀最大值即可。(推一推如果 \(l\) 对于 \(i\) 不满足,对于 \(i + 1\) 也是不满足的,根据 \(a_i, a_i + 1\) 套路一下即可。)


最后发现可能一个子串可能被多次算到,将 \(x\) 对应到一个矩形里,暴力算矩形并即可。但是实际有更简单的方法,因为我们得到的矩形横竖轴的 \(l, r\) 都是单调不减的,只需要和前一个矩形取并即可。

时间复杂度:\(O(n)\)

转化题目条件,抓住关键点 \(x\),再算答案,思路还是挺顺畅的,组合起来有点难。

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

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

相关文章

【做题记录】HZOJ 多校-数论

B. [POI2011] SEJ-Strongbox 2025noip模拟赛73 BCode #include<bits/stdc++.h> #define int long long #define il inline #define pb push_back using namespace std; namespace asbt{ const int maxn=2.5e5+5;…

2014 吉林省赛题解 | CCUT应用OJ题解——F[X] + X = N

题目简介题意:对于任意十进制整数 \(X\),定义 \(F[X]^\dagger\) 表示其循环左移一位所得到的数。给定非负整数 \(N\),求所有满足等式 \(X+F[X]=N\) 的 \(X\) 的个数。 \(\dagger\) 循环左移:设 \(X=a_0a_1\cdots a…

洛谷 P4859 已经没有什么好害怕的了 题解(DP,二项式反演)

给两个长为 \(n\) 的数组 \(a, b,\) 求将 \(a_i, b_j\) 两两匹配使得 \(a_i > b_j\) 的数量比 \(a_i < b_j\) 的数量多 \(k\)。数字不重复, \(k \le n \le 2000\)。注意到,其实 \(a_i>b_j\) 和 \(a_i<b_j…

01321:棋盘问题

|DFS|回溯| 难点1:DFS,对于dfs(h,t)表示的“即将在第h行进行摆放,已摆放的棋子数为t个”,即如何在dfs函数内部进行递归:若该棋可以放在第h行的第i个位置(标注take[i]=true),则对改行以下行中所有可行的点进行递归…

飞鱼uu单人防空4

飞鱼uu单人防空4盖亚特买40个-->超级防空100-->超级磁能40-->磁能巨无霸20.剩下的随便买.一直造坦克碉堡

C 变量的作用域与生存周期

弄清楚变量的作用域和生存周期,能够让我们不至于犯低级错误; 局部变量 在初学C语言变量的时候,我们通常将变量写在main函数内; 在函数内部,或者{}块内部的变量称为局部变量;它有以下特点:系统不会帮忙初始化,需…

模式识别与机器学习课程笔记(11):深度学习 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Python字符串常用操作速查表(全面版v1.0 - 2025年11月12日修订)

Python字符串常用操作速查表(全面版v1.0 - 2025年11月12日修订) 📌 使用说明 时间复杂度:O(1)=常数级(快),O(n)=线性级(随数据量增长),O(k)=取决于传入可迭代对象长度 🔴 字符串(str)为不可变类型,所有&…

05.创建型 - 简单工厂模式(Simple Factory Pattern)

简单工厂模式(Simple Factory Pattern) 定义一个工厂类,根据传入的参数不同返回不同的实例,被创建的实例具有共同的父类或接口。 适用场景:(1)需要创建的对象较少。(2)客户端不关心对象的创建过程。例: 你需要一辆…

RabbitMQ延迟队列rabbitmq_delayed_message_exchange

访问:https://www.rabbitmq.com/community-plugins.html 下载rabbitmq_delayed_message_exchange插件,然后将插件文件(rabbitmq_delayed_message_exchange-4.0.2.ez)放置到RabbitMQ的插件目录(/usr/lib/rabbitmq/…

HaluMem:揭示当前AI记忆系统的系统性缺陷,系统失效率超50%

用过聊天机器人的人都遇到过这种情况:你刚说喜欢科幻小说,几轮对话后它给你推荐言情小说。你告诉聊天机器人升职了,但是过会儿又他又问你职业。这种情况不只是健忘而是根本性的bug——AI不仅会丢上下文,还会凭空编…

团队作业2-需求规格说明书

| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience | | 这个作业要求在哪里| https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/homework/13481 | | 这…

Mac安装Visual Studio 2019.dmg详细步骤(附图解,小白也能懂,附安装包)

Mac安装Visual Studio 2019.dmg详细步骤(附图解,小白也能懂,附安装包)​ Visual Studio 2019 for Mac是微软推出的 Mac 版集成开发环境(IDE),主要用于开发 C#、.NET、ASP.NET、Xamarin(移动开发)、Unity 游戏…

#题解#洛谷P1496#离散化#

[传送门](P1496 火烧赤壁 - 洛谷) 分析a,b的范围在 - 2 ^ 31 到 2 ^ 31 ,直接开数组用桶来记录每一个点是否染色显然MLE / RE尝试开数组用桶记录一个个区间段是否染色,如何选择区间段的端点呢?显然,只需选取每次染…

20251112 正睿

B对于一个子串,它一定会是两条出边,当且仅当其所有字符相同时达到的节点相同(不妨设这样的字符串为”特殊串“)。 如果不考虑特殊串,答案就是 \(2^n - 1\)。 而只要到达了特殊串,后面就只有 \(|s|\) 种路径了,所…

Polygon:从入门到入门

大概是一份面向新手的 Polygon 算法竞赛出题平台教程。 写在前面 Polygon 是一个自动化程度相当高的算法竞赛出题平台。在开始之前,先简单聊一聊 Polygon 能帮我们干一些什么事情。在 Polygon 上,你可以很方便的进行…

《云操作系统(OpenStack)第二版》学习笔记汇总版-从0开始完成在线安装并为离线安装准备软件包

对着这本书做,发现其中有很多问题,根本做不出来。中间上网查找了不少解决的办法,过程已经不记得了,现在把结果的代码放在这里。 脚本是我写的,一些关键的注释是我写的,不过后来又让豆包重新注释了一遍。 环境规划…

25.11.12 差分约束算法

差分约束算法 一.形式 由一组形如x_i​−x_j≤c​的不等式组成的系统,其中x_i,x_j,是变量,c是常量。 目标是:判断是否有一组 x 值同时满足所有约束;若有,求出一组可行解。 二.思路:转化成最短路问题 1.将x_i​−…

11/12

明天篮球比赛好期待