尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

LIS 的二分做法

LIS 的二分做法
📅 发布时间:2026/6/20 10:08:57

stooooooooooooooooooooooooooo xhr ooooooooooooooooooooooooooooorz

一种是线段树,一种是二分,接下来介绍二分做法。

就是维护一个上升序列,每次加一个元素,具体过程看代码,好理解的()

说人话就是维护长度为 \(i\) 的最后一个元素的最小值,但是这个维护方法有点 trick。

LIS 的二分做法是个好东西,有时能够给出一种具体的映射。

int LIS(){int b[MAXN], top = 0, a[MAXN];b[0] = -1;for(int i = 1; i <= n; i++){if(a[i] > b[top]){top++, b[top] = a[i];}else{int l = 1, r = top;while(l < r){             // 二分,O(log n)int u = (l + r) >> 1;if(a[i] > b[u]){l = u + 1;}else{r = u - 1;}}b[l] = a[i];}}return top;
}

三分图(ZR 模拟赛题)

参考:xhr 大神的 20251022 总结的 C 题

xhr 大神的题解(含题意)

image

问题是求字典序在 \(p \sim q\) 之间且最长下降子序列 \(\le 3\) 的排列数量。多测,\(1 \le T,n \le 300\)。

差分变为求字典序比一个序列小的合法序列的数量。

考虑枚举公共前缀,再枚举后面一个的值。

考虑维护长度为 \(1,2,3\) 的下降子序列的最大值,但实际上从 LIS 的二分做法来看会更简单:维护下降序列 \(G\)(初始全为 \(+\infty\)),每次在末尾加上 \(x\),找到最小的 \(i(g_i \le x)\),然后 \(g_i \leftarrow x\)。

优先优化 check 方法,考虑对一个序列 \(P\) 的 check 方法:

  • 设当前 \(g_1=x,g_2=y,g_3=z\),末尾加入一个数 \(w\)
    • 如果 \(w < z\) 就不合法了。
    • 如果 \(z < w < y\),则 \(z = w\)。
    • 如果 \(y < w < x\),则 \(y = w\)。
    • 如果 \(x < w\) 则 \(x = w\)

很显然,这是一个只和大小关系有关的限制条件,恰好,对于相关排列的计数,也只能做到存储大小关系。

那么就不要再考虑存具体的值了,我们在乎的是数量。

  • \(f_{i,j,k}\) 表示分别表示 \((+\infty,x),(x,y),(y,z)\) 中的数量,之后全部用完的方案数。
  • \(f_{i,j,k} = \sum\limits_{x=1}^{i}{f_{i-x,j+x-1,k}} + \sum\limits_{x=1}^{j}{f_{i,j-x,k+x-1}} + f_{i,j,k-1}\)
  • 第一个求和式中为什么是 \(j+x-1\)?因为 \(w\) 操作后就不算了。后面的类似。

前缀和优化可做到 \(O(n^3)\)。

接下来回到询问,\(O(n^2)\) 次枚举,每次确定了 \((x,y,z)\),那么 \((i,j,k)\) 也确定了。

总时间复杂度 \(O(n^3 + Tn^2)\)。

总之:

  • 可见 LIS 的二分做法是个好东西,能够给出一种具体的映射。
  • 而且这题的限制只和大小关系有关,需要有能列出条件的好习惯去发现这个。

CF2143D2 - Inversion Graph Coloring (Hard Version)

(这题的原题意类似上面三分图那题,同样的转化得到如下题意)

给一个序列 \(A\),求有多少个 \(A\) 的子序列,满足最长下降子序列长度 \(\le 2\)。答案对 \(10^9 + 7\) 取模。

多测,\(\sum{n} \le 2000\)。

做法几乎和上面一题一样,梳理 check 做法再 dp。

相关新闻

  • 2025年码垛桁架机械手生产厂家权威推荐榜单:桁架搬运机械臂/桁架机器人/桁架搬运机械臂源头厂家精选
  • 人类智慧
  • 开源神器MinerU:一键提取PDF内容的工具 - yi

最新新闻

  • 攀枝花市奢侈品手表包包回收回收门店权威测评:综合实力最强的五家店铺推荐 - 谊识预商务
  • 深入解析NXP ColdFire EMAC单元:DSP性能优化的架构奥秘
  • 安顺市2026奢侈品手表包包回收防骗指南:跑了5家店总结出的真实报价经验 - 谊识预商务
  • FlowComposer框架:零样本学习中的显式组合与流匹配技术
  • ARM9微控制器LPC32x0系列:低功耗、高集成度与VFP协处理器的嵌入式设计实践
  • 洛阳市奢侈品手表包包回收价格差距高达15%:实测对比告诉你哪家店报价最实在 - 谊识预商务

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号