我们先证正确性,再证复杂度

以下记$\left \langle i,j \right \rangle$为考虑$\left [ i,j \right ]$的点时的最优决策

$\left \langle i,j \right \rangle$由$\left \langle i,j-1 \right \rangle$转移的

先放棵树

那个橙色的就是$\left \langle i,j-1 \right \rangle$

此时根是其他任意一个点都不会比现在更优

现在我们要在这颗树上插入点$j$,

显然$j$是这颗树中最大的点

那么这个点只会被插入到图示绿色区域内

此时绿色区域中会有一个更深的点,

通过将绿色区域中某一点换为根可能会使答案变优,

但将白色区域的点换为根一定不优

所以$\left [\left \langle i,j-1 \right \rangle,j  \right ]$为$\left \langle i,j \right \rangle$的可行区间

同理$\left [i,\left \langle i+1,j \right \rangle  \right ]$为另一可行区间

有因为$\left \langle i,j-1 \right \rangle\geqslant i,\left \langle i+1,j \right \rangle\leq j$

所以$\left \langle i,j \right \rangle$的可行区间为:$$\left [ \left \langle i,j-1 \right \rangle,\left \langle i+1,j \right \rangle \right ]$$

然后是复杂度

考虑枚举每一个$len$

我们会更新$\left \langle i,j \right \rangle,\left \langle i+1,j+1 \right \rangle, \cdots$

在更新$\left \langle i,j \right \rangle$时

我们会用到$\left [\left \langle i,j-1 \right \rangle,\left \langle i+1,j \right \rangle  \right ]$

更新$\left \langle i+1,j+1 \right \rangle$时

我们会用到$\left [\left \langle i+1,j \right \rangle,\left \langle i+2,j+1 \right \rangle  \right ]$

所以一个点最多被用两次

枚举$len$是$\Theta (n)$的

所以总的来说是$\Theta (n^{2})$的

csp-s模拟测试93T2口胡(蒟蒻的口胡大家显然就不用看了吧的更多相关文章

  1. Android单元测试与模拟测试详解

    测试与基本规范 为什么需要测试? 为了稳定性,能够明确的了解是否正确的完成开发. 更加易于维护,能够在修改代码后保证功能不被破坏. 集成一些工具,规范开发规范,使得代码更加稳定( 如通过 phabri ...

  2. [开源]微信在线信息模拟测试工具(基于Senparc.Weixin.MP开发)

    目前为止似乎还没有看到过Web版的普通消息测试工具(除了官方针对高级接口的),现有的一些桌面版的几个测试工具也都是使用XML直接请求,非常不友好,我们来尝试做一个“面向对象”操作的测试工具. 测试工具 ...

  3. 安装nginx python uwsgi环境 以及模拟测试

    uwsgi帮助文档: http://uwsgi-docs-cn.readthedocs.io/zh_CN/latest/WSGIquickstart.html http://uwsgi-docs.re ...

  4. 利用Python中的mock库对Python代码进行模拟测试

    这篇文章主要介绍了利用Python中的mock库对Python代码进行模拟测试,mock库自从Python3.3依赖成为了Python的内置库,本文也等于介绍了该库的用法,需要的朋友可以参考下     ...

  5. 转 C#实现PID控制的模拟测试和曲线绘图

    C#实现PID控制的模拟测试和曲线绘图   本文分两部分,一部分是讲PID算法的实现,另一部分是讲如何用动态的曲线绘制出PID运算的结果. 首先,PID算法的理论模型请参考自动控制理论,最早出现的是模 ...

  6. Mockito:一个强大的用于Java开发的模拟测试框架

    https://blog.csdn.net/zhoudaxia/article/details/33056093 介绍 本文将介绍模拟测试框架Mockito的一些基础概念, 介绍该框架的优点,讲解应用 ...

  7. NOIP模拟测试1(2017081501)

    好,今天是cgg第一次举行模拟测试,希望各位支持. 时间限制:2小时 题目链接: 题目一:水得都没名字了 题目二:车站 题目三:选数 不要觉得2小时太少,我的题目很良心,都很简单. 答案可以在模拟测试 ...

  8. Mock 模拟测试简介及 Mockito 使用入门

    Mock 是什么mock 测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法.这个虚拟的对象就是mock对象.mock对象就是真实对象在调试期间的代 ...

  9. Mac下Jmeter快速安装与入门-模拟测试Post请求及设置Http头

    [1]去Apache官网下载 Binaries系列的最新Jmeter.gz包 [2]下载到本地之后解压缩,进入到解压之后的目录然后,找到apache-jmeter-4.0/bin/jmeter.sh ...

随机推荐

  1. jwt 0.9.0 系列目录

    jwt官网地址:https://jwt.io/ PS: 写此系列的时候,jjwt jar包版本是0.9.0 <dependency>    <groupId>io.jsonwe ...

  2. tkinter学习笔记_04

    8.勾选项 checkbutton import tkinter as tk root = tk.Tk() root.title("xxx") root.geometry('200 ...

  3. [高清] SpringBoot揭秘快速构建微服务体系

    ------ 郑重声明 --------- 资源来自网络,纯粹共享交流, 如果喜欢,请您务必支持正版!! --------------------------------------------- 下 ...

  4. 创建job,delete定时清理数据

    Job定时删除数据 需求:对一个表,每天删除一月前的历史数据 思路 .编写SQL,删除一月前的历史数据,使用函数取值 .测试JOB创建,查询,维护,管理 .测试布置job,满足效果 ***测试数据准备 ...

  5. Springboot 整合ApachShiro完成登录验证和权限管理

    1.前言 做一个系统最大的问题就是安全问题以及权限的问题,如何正确的选择一个安全框架对自己的系统进行保护,这方面常用的框架有SpringSecurity,但考虑到它的庞大和复杂,大多数公司还是会选择 ...

  6. Eclipse 安装反编译插件 Eclipse Class Decompiler

    Eclipse Class Decompiler在线安装方法 https://blog.csdn.net/tangjinquan1157/article/details/77506015 Eclips ...

  7. 3:基于乐观锁(两种)控制并发: version、external锁

    ES是基于乐观锁进行并发控制的. 如果有并发的业务场景,可以直接使用ES内置乐观锁机制. 使用的时候,java程序需要先Get指定的记录,获取到版本号,然后Put的时候,带着该版本号,请求更新. ES ...

  8. YII 的SPA 写法

    'use strict'; var findToolbar = function () { return document.querySelector('#yii-debug-toolbar'); } ...

  9. Mybatis中三种关联关系的实现

    目录 一对一查询 一对多查询 自关联查询: 多对多查询 总结: 三种关联关系:一对多,一对一,多对多 两种查询方式:嵌套查询,连接查询(也可称作:多表单独查询,多表连接查询) 每一种关联关系都可以通过 ...

  10. 并发编程-线程-死锁现象-GIL全局锁-线程池

    一堆锁 死锁现象 (重点) 死锁指的是某个资源被占用后,一直得不到释放,导致其他需要这个资源的线程进入阻塞状态. 产生死锁的情况 对同一把互斥锁加了多次 一个共享资源,要访问必须同时具备多把锁,但是这 ...