D1T1 回家路线

好久之前写的,忘了具体细节,但是发现有平方项所以考虑拆项之后斜率优化。

D1T2 机器人

考虑 DP。

记 \(f_{l,r,i}\) 表示 \([l,r]\) 这段区间,最大值为 \(i\) 的方案数,同时记 \(g_{l,r,i}=\sum\limits_{j=1}^if_{l,r,i}\)。

由于向左可以走到 \(\le h_s\) 的,向右可以走到 \(< h_s\) 的。

所以我们找到 \(h_i\) 最大的位置中编号最大的,除非以这个位置为起点,则没有任何一个机器人会到达这个位置。

考虑枚举这个最高点,则有 \(f_{l,r,i}=\sum\limits_{|(r-j)-(j-l)|\le 2\land l_j\le i\le r_j}g_{l,j-1,i}g_{j+1,r,i-1}\)。

初始化 \(f_{i,i-1,0}=1\)。

则这个转移是 \(O(n^2V)\) 的(转移枚举量看作 \(O(1)\)),我们考虑如何优化它。

考虑从转移的两个限制下手:

由于有 \(|(r-j)-(j-l)|\le 2\),考虑到最终对 \(f_{1,n,*}\) 做贡献的区间不会取遍 \(O(n^2)\) 个,所以考虑从 \(1,n\) 开始深搜,发现极限数据下 \(S\approx 2000\)。

这样复杂度可以做到 \(O(SV)\),但是 \(V\) 仍然很大。

\(n\) 个数的取值将值域划分成了 \(O(n)\) 个不同的区间

通过感性的理解,在每个区间内 \(g_{l,r,i}\) 应该会是一个关于 \(i\) 的 \(O(n)\) 次多项式(其实可以认为 \(g_{l,l,i}\) 是关于 \(i\) 的一次式,在通过转移式子可知 \(g_{l,r,i}\) 至多是一个 \(r-l+1\) 次多项式)。

而当前区间和下一个区间有关的只有最后一项,所以我们可以使用拉格朗日插值求出最后一项是多少。

这样的时间复杂度为 \(O(n^2S)\)。

D1T3 序列

感觉这个东西很反悔贪心,我们考虑建出它的费用流模型。

至少有 \(L\) 对相同,也就是最多有 \(K-L\) 对不相同。

设 \(S\) 为源点,\(T\) 为汇点,\(A_i\) 表示第一个序列上的第 \(i\) 个点,\(B_i\) 表示第二个序列上的第 \(i\) 个点,以及两个特殊节点 \(P,Q\)。

记一条有向边信息为 \((u,v,f,w)\) 表示从 \(u\) 到 \(v\),流量为 \(f\),费用为 \(w\) 的有向边。

则需要连边:

\((S,A_i,1,a_i)\),\((A_i,B_i,1,0)\),\((B_i,T,1,b_i)\),\((A_i,P,1,0)\),\((P,Q,K-L,0)\),\((Q,B_i,1,0)\)。

考虑枚举费用流可能的增广路径,发现有 \(5\) 中可能的路径,使用堆维护即可。

D2T1 弹跳

可以从一个点跳到一个矩形,类似最短路模型。

使用 KDT 维护当前到达每个点的最短距离,每次使用没有增广过且距离最短的增广,时间复杂度 \(O(n\sqrt{n})\)。

D2T2 斗主地

找规律之后发现,假设洗牌前牌对应一个 \(k\) 次函数 \(f(i)\) 洗牌之后的函数 \(g(i)\) 仍为 \(k\) 次函数,所以每一次暴力 DP 出前 \(k+1\) 项的值,然后拉格朗日插值即可。

D2T3 I 君的探险

测试点 \(1\sim 5\):每一个点 modify 一次,暴力检查每个点是否被反转了,如果被反转了,说明有连边。

测试点 \(6\sim 17\):图是一个树形态,我们通过二进制分组来得到每一个点相连的点的异或和,我们每一次尝试找到一个叶子(特殊形式 A B 可以直接取当前还有连边的最大的)将其和父亲相连,递归这个过程即可。

测试点 \(18\sim 25\):考虑整体二分,先随机打乱序列,然后找到向前连了奇数条边的点,找到他们连的边。

NOI 2019 补全记录的更多相关文章

  1. Yahoo Programming Contest 2019 补题记录(DEF)

    D - Ears 题目链接:D - Ears 大意:你在一个\(0-L\)的数轴上行走,从整数格出发,在整数格结束,可以在整数格转弯.每当你经过坐标为\(i-0.5\)的位置时(\(i\)是整数),在 ...

  2. CozyRSS开发记录6-继续补全订阅内容栏

    CozyRSS开发记录6-继续补全订阅内容栏 1.订阅内容栏布局 按照之前的原型图,把订阅内容栏分成三块.Xaml如下: 2.照葫芦画瓢,完成头部和列表 头部依然使用ColorZone,右侧再放两个按 ...

  3. Ubuntu16.04VIM无法补全错误记录

    先记录一下YouCompleteMe的安装过程. 按照教程进行安装 1. 安装 vundle # vundle是vim的包管理器,十分好用 cv@cv: ~$ git clone https://gi ...

  4. 记录一次bug解决过程:else未补全导致数据泄露和代码优化

    一.总结 快捷键ctrl + alt + 四个方向键 --> 倒置屏幕 未补全else逻辑,倒置查询数据泄露 空指针是最容易犯的错误,数据的空指针,可以普遍采用三目运算符来解决 SVN冲突解决关 ...

  5. 删除Chrome地址栏记录中自动补全的网址

    为了删除某个自动补全的网站,多年的历史纪录没了,还浪费我十多分钟,蠢哭_(:з」∠)_ 不是历史记录.不是清除浏览器数据.不是myactivity(谷歌账号)中的历史纪录,直接在书签中搜索,删除,OK ...

  6. centos7安装docker记录+命令补全

    原本用centos6.6部署项目环境,突然想装docker ,使用uname -r 发现内核版本太低,更新内核完后重启起不来了~~~~~,还是用回7吧 21 yum -y install gcc 22 ...

  7. 使用Visual Studio Comunity 2019开发Unity C#脚本没有自动补全的解决方法

    最近开始试着玩Unity3D,要为场景中的物体编辑脚本.Unity3D推荐的脚本语言是C#,在Unity打开C#就会使用Visual Studio来进行编辑. 启动Visual Studio之后注意到 ...

  8. QLineEdit拾遗:数据的过滤、验证和补全

    QLineEdit是使用频率最高的控件之一,当我们想获取用户输入时自然而然得会用到它. 通常我们会将QLineEdit的信号或其他控件的信号绑定至槽函数,然后获取并处理编辑器内的数据.你会觉得我们拿到 ...

  9. 7. 进行图片的数据补全和增强(随机亮度,随机饱和度,随机翻转) Image.open(进行图片的读入) 2.ImageEnhance.Brightness(亮度变化) 3.ImageEnhance.Contrast(饱和度变化) 4.enhance_image.transpose(图片随机翻转) 5.enhance_image.save(进行图片保存)

    1.Image.open(image_path)  进行图片的打开 参数说明:image_path 表示图片的路径 2. ImageEnhance.Brightness(image)  # 进行图片的 ...

  10. Mac Tab自动补全键

    最近入手一个Mac(Mac 2019版本),在使用终端时,发现不能使用Tab键自动补全代码,网络搜寻下,发现这里有个方法,记录下,免得自己忘记: 1 / 首先找到这个图标 2 / 输入命令 nano ...

随机推荐

  1. 在Chrome中安装扩展程序

    场景:在Chrome中安装NetBeans Connector插件,将下载好的crx文件拖到扩展程序页面时,发现该插件并没有安装成功. 分析:浏览器默认禁用了拖入安装 .crx 扩展的功能,导致crx ...

  2. 在Python中使用Process创建子进程遇到的问题

    假如使用Process创建子进程,那么在最后的函数调用时需要加上if __name__ == "__main__":语句,否则会报错. 未使用该语句 代码示例 from multi ...

  3. asp.net core之Kestrel

    简介 在ASP.NET Core中,Kestrel是一个重要的组件,它是一个跨平台的.开源的Web服务器,专门为ASP.NET Core应用程序而设计.Kestrel以其轻量级和高性能而闻名,本文将介 ...

  4. Java项目配置Maven依赖时不知需要的最低jdk版本?(报错java: 错误: 无效的目标发行版:17)

    1.问题 在配置SpringBoot项目依赖时,使用了最新的spring-boot-starter-parent 3.1.5,但是出现了java: 错误: 无效的目标发行版:17的报错 2.解决 经过 ...

  5. 文心一言 VS 讯飞星火 VS chatgpt (185)-- 算法导论14.1 2题

    二.用go语言,对于图 14-1中的红黑树 T 和关键字 x.key 为35的结点x,说明执行 OS-RANK(T,x) 的过程. 文心一言: 在红黑树中,OS-RANK(T, x) 是一个操作,用于 ...

  6. Mongo-文档主键-ObjectId

    文档主键 文档主键时 _id,如果插入文档时,没有传入则自动生产ObjectId 作为文档主键 文档主键要求在集合中唯一 文档主键可以时另一个文档,被当作字符串对象处理 ObjectId对象 获取文档 ...

  7. [转帖]OutOfMemory JVM参数一览

    https://www.cnblogs.com/kuroro/p/11707951.html JVM提供了有用的参数来处理OutOfMemoryError.在本文中,我们要强调那些JVM参数.在对Ou ...

  8. [转帖]Linux系统管理-crond、chkconfig、systemd、unit、target

    https://cloud.tencent.com/developer/article/1409845 10.23 linux任务计划cron crontab命令被用来提交和管理用户的需要周期性执行的 ...

  9. [转帖]Web技术(五):HTTP/2 是如何解决HTTP/1.1 性能瓶颈的?

    文章目录 一.HTTP/2 概览 二.HTTP/2 协议原理 2.1 Binary frame layer 2.1.1 DATA帧定义 2.1.2 HEADERS帧定义 2.2 Streams and ...

  10. [转帖]金仓数据库KingbaseES表空间(tablespace)知多少

    金仓数据库KingbaseES表空间定义 金仓数据库KingbaseES中的表空间允许在文件系统里定义那些代表数据库对象的文件存放位置,比如表和索引等.一旦表空间被创建,那么就可以在创建数据库对象时通 ...