首页 > 其他分享 > Deltix Round, Spring 2021 (open for everyone, rated, Div. 1 + Div. 2)

Deltix Round, Spring 2021 (open for everyone, rated, Div. 1 + Div. 2)

时间:2023-05-04 11:34:50浏览次数:53  
标签:everyone log 传送门 Spring 复杂度 任务 时间 mathcal Div

好久没发博客了,发一篇。

A

求出每个 \(0\) 与往前 / 往后最近的 \(1\) 的距离即可。

时间复杂度 \(\mathcal{O}(n)\)。

B

\((x, y) \to (x + y, y) \to (x + y, -x) \to (y, -x) \to (y - x, -x) \to (y - x, -y) \to (-x, -y)\)。

时间复杂度 \(\mathcal{O}(n)\)。

C

开个栈模拟即可。

时间复杂度 \(\mathcal{O}(n)\)。

D

若钦定选择一个人,则使用 FWT 可以在 \(\mathcal{O}(n + p 2^p)\) 的时间复杂度内求出答案。

随机 \(100\) 次即可。

时间复杂度 \(\mathcal{O}(T(n + p 2^p))\),其中 \(T = 100\)。

E

看成出现连续 \(k\) 个 \(1\),耽误了半个多小时 /cf

即对于所有排列,统计按照排列顺序操作第一次不合法的位置之和。所以对于一个有 \(i\) 个 \(1\) 的合法情况,其出现次数为 \(i!(n - i)!\)。

考虑在这 \(i\) 个 \(1\) 之间塞 \(0\)。中间的 \(i - 1\) 个空至少塞 \(k - 1\) 个,其余任意,于是方案数为 \(\binom{n - (i - 1)(k - 1)}{i}\)。

时间复杂度 \(\mathcal{O}(n)\)。

F

不难想到状压 dp。但是不太好设状态。首先把任务按照时间排序,若设 \(f_{i, j, S, 0/1}\) 表示最后完成的任务是 \(i\),已经完成了 \(j\) 个任务,已经激活的传送门集合为 \(S\),当前在第 \(i\) 个任务 / 传送门 所需的最小时间的话,转移还需枚举上一个完成的任务,无论如何会带上 \(m^3 2^n\),寄。

我们考虑转移的过程。如果直接从任务走到任务,\(S\) 是不变的;如果中间从任务走到传送门了,就与上一个完成的任务没关系了。这引导我们把两种转移分开。

设 \(f_{i, S}\) 表示完成了 \(i\) 个任务,已经激活的传送门集合为 \(S\) 所需的最小时间;\(g_{i, S}\) 表示最后完成的任务是 \(i\),已经激活的传送门集合为 \(S\) 最多能完成多少个任务。

按照 \(i\) 从小到大转移,则我们先用 \(f\) 和 \(g\) 更新 \(g\),再用 \(g\) 更新 \(f\) 即可。但是每一次更新 \(f\) 的复杂度为 \(\mathcal{O}(n m 2^n)\),总时间复杂度为 \(\mathcal{O}(nm^2 2^n)\),还是过不掉。

可以按照 \(S\) 从小到大转移,这样 \(f\) 的更新就能放在一起做了,时间复杂度 \(\mathcal{O}((n + m) m 2^n)\)。

需要预处理一些东西,这是容易的。

G

考虑第一个选择的区间 \([l, r]\),其把 \([1, n]\) 分为了 \([1, l - 1]\) 和 \([r + 1, n]\) 两个相互独立的区间,形成了分治结构。我们需要支持的操作是查询一个被一个区间包含的所有区间中编号最小的那个,使用树套树实现。

因为至多选择 \(\left \lfloor \frac{n}{x} \right \rfloor\) 个区间,所以时间复杂度是 \(\mathcal{O}(n \log^3 n + m \log^2 n)\)。

H

首先考虑 \(k = 0\)。设 \(f_{i, j}\) 表示从 \(i\) 开始走 \(2^j\) 步能走到的最远的位置。显然,\([i, f_{i, j}]\) 内的所有位置都是可达的,所以转移就是

\[f_{i, j} = \max_{p \in [i, f_{i, j - 1}]} f_{p, j - 1} \]

查询依然考虑倍增。令 \(j : \left \lfloor \log n \right \rfloor \to 0\),依次考虑答案加上 \(2^j\) 是否可行即可,也是区间 \(\max\) 查询。

加上 \(k\) 之后,实际上再加一维表示当前用了几次操作、转移加个背包即可。

若区间 \(\max\) 直接使用 ST 表优化,空间复杂度为 \(\mathcal{O}(nk \log^2 n)\),无法接受。但是发现求 \(f\) 是 \(j \to j + 1\);求答案是 \(j \to j - 1\),于是每一层做完以后更新 ST 表即可,空间复杂度变为 \(\mathcal{O}(nk \log n)\),可以接受。

时间复杂度 \(\mathcal{O}(n k \log^2 n)\),需要卡常。我把 ST 表的两维交换就过了,大概是内存访问更连续吧。

标签:everyone,log,传送门,Spring,复杂度,任务,时间,mathcal,Div
From: https://www.cnblogs.com/Scintilla/p/17370606.html

相关文章

  • SpringBoot 集成 Shiro 简单教程
    1.前言 ApacheShiro是一个功能强大且易于使用的Java安全框架,提供了认证,授权,加密,和会话管理。Shiro有三大核心组件:Subject: 即当前用户,在权限管理的应用程序里往往需要知道谁能够操作什么,谁拥有操作该程序的权利,shiro中则需要通过Subject来提供基础的当前用户信息,Sub......
  • Spring AOP官方文档学习笔记(三)之基于xml的Spring AOP
    1.声明schema,导入命名空间(1)如果我们想要使用基于xml的springaop,那么,第一步,我们需要在xml配置文件中声明springaopschema,导入命名空间,如下这是一个标准的模板<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmln......
  • SpringBoot项目部署在外置Tomcat正常启动,但项目没有被加载的问题
    最近打算部署个SpringBoot项目到外置Tomcat运行,但是发现tomcat启动成功,访问却一直404,刚开始以为是Tomcat的问题,就一直在改Tomcat配置。最后发现tomcat启动时根本就没加载到项目,因为控制台没有打印"SpringBoot"的项目标志经过一番百度查找,最后发现是因为项目启动类没有继承Spring......
  • SpringMVC03_校验和拦截器
    以下代码全过程在上篇一、SpringMVC校验​ 举一个简单的例子,在登陆时我们要检验用户名是否输入、密码是否合法。(一)引入依赖框架​ 在Spring-MVC中我们需要添加Hibernate的Validator检验框架,注意下面的版本号,615Final对应的应该是importjavax.validation.constraints......
  • SpringSecurity简介
    ------------恢复内容开始------------SpringSecurity简介SpringSecurity是spring家族中的一个安全框架,相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富一般来说中大型的项目都是使用springsecurity来做安全框架,小项目有Shiro的比较多,因为相比与Spri......
  • 从Spring源码分析@Autowired依赖注入实现原理
    在平常项目开发中,使用@Autowired注解进行字段注入很常用,本篇就通过Spring源码,重点分析这种方式实现依赖注入的过程。本篇Spring源码版本为5.1.7.RELEASE。在源码中,关键类是AbstractAutowireCapableBeanFactory,这个类继承AbstractBeanFactory,所以在Spring上下文启动......
  • CF1190 div.1板刷记
    经过上一次的vp,发现自己还有很大不足,所以还在板刷div.1。ACF题面模拟即可。点击查看代码#include<bits/stdc++.h>#defineullunsignedlonglong#defineintlonglong#definepiipair<int,int>#definepbpush_back#definempmake_pairusingnamespacestd;names......
  • Spring整合Junit
    Spring整合Junit整合Junit与整合Druid和MyBatis差异比较大,为什么呢?Junit是一个搞单元测试用的工具,它不是我们程序的主体,也不会参加最终程序的运行,从作用上来说就和之前的东西不一样,它不是做功能的,看做是一个辅助工具就可以了。1、环境准备这块环境,大家可以直接使用Spring与Myb......
  • 基于springcloud实现的医院信息系统
    访问【WRITE-BUG数字空间】_[内附完整源码和文档]医疗信息就诊系统,系统主要功能按照数据流量、流向及处理过程分为临床诊疗、药品管理、财务管理、患者管理。诊疗活动由各工作站配合完成,并将临床信息进行整理、处理、汇总、统计、分析等。本系统包括以下工作站:门诊医生工作站、药房......
  • 记录一件很神奇的类型转换问题(springboot项目+echarts)
    今天博主在应付学校的实验,想要使用echarts绘制一张很简单的条形图(博主是初学者),如下(时间还未作排序) 对于横轴,我封装了一个dateList,这个datelist是用java,将数据库中date类型的数据,提取其年月拼装而成的,代码如下:Stringdate=String.valueOf(art.getArticleCreateTime().getYea......