NOI 2019 补全记录
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 补全记录的更多相关文章
- Yahoo Programming Contest 2019 补题记录(DEF)
D - Ears 题目链接:D - Ears 大意:你在一个\(0-L\)的数轴上行走,从整数格出发,在整数格结束,可以在整数格转弯.每当你经过坐标为\(i-0.5\)的位置时(\(i\)是整数),在 ...
- CozyRSS开发记录6-继续补全订阅内容栏
CozyRSS开发记录6-继续补全订阅内容栏 1.订阅内容栏布局 按照之前的原型图,把订阅内容栏分成三块.Xaml如下: 2.照葫芦画瓢,完成头部和列表 头部依然使用ColorZone,右侧再放两个按 ...
- Ubuntu16.04VIM无法补全错误记录
先记录一下YouCompleteMe的安装过程. 按照教程进行安装 1. 安装 vundle # vundle是vim的包管理器,十分好用 cv@cv: ~$ git clone https://gi ...
- 记录一次bug解决过程:else未补全导致数据泄露和代码优化
一.总结 快捷键ctrl + alt + 四个方向键 --> 倒置屏幕 未补全else逻辑,倒置查询数据泄露 空指针是最容易犯的错误,数据的空指针,可以普遍采用三目运算符来解决 SVN冲突解决关 ...
- 删除Chrome地址栏记录中自动补全的网址
为了删除某个自动补全的网站,多年的历史纪录没了,还浪费我十多分钟,蠢哭_(:з」∠)_ 不是历史记录.不是清除浏览器数据.不是myactivity(谷歌账号)中的历史纪录,直接在书签中搜索,删除,OK ...
- centos7安装docker记录+命令补全
原本用centos6.6部署项目环境,突然想装docker ,使用uname -r 发现内核版本太低,更新内核完后重启起不来了~~~~~,还是用回7吧 21 yum -y install gcc 22 ...
- 使用Visual Studio Comunity 2019开发Unity C#脚本没有自动补全的解决方法
最近开始试着玩Unity3D,要为场景中的物体编辑脚本.Unity3D推荐的脚本语言是C#,在Unity打开C#就会使用Visual Studio来进行编辑. 启动Visual Studio之后注意到 ...
- QLineEdit拾遗:数据的过滤、验证和补全
QLineEdit是使用频率最高的控件之一,当我们想获取用户输入时自然而然得会用到它. 通常我们会将QLineEdit的信号或其他控件的信号绑定至槽函数,然后获取并处理编辑器内的数据.你会觉得我们拿到 ...
- 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) # 进行图片的 ...
- Mac Tab自动补全键
最近入手一个Mac(Mac 2019版本),在使用终端时,发现不能使用Tab键自动补全代码,网络搜寻下,发现这里有个方法,记录下,免得自己忘记: 1 / 首先找到这个图标 2 / 输入命令 nano ...
随机推荐
- 【日常踩坑】Debug 从入门到入土
写代码难免遇到 bug,调试解决 bug 的快慢很影响开发的效率.本文主要是梳理并记录下个人经常用的调试方法(主要以 C/C++ 的 segment fault 为例) 分类 根据调试时机与 bug ...
- 使用WTM框架创建博客系统后台并在云服务器发布
阅读导航 关于lqclass.com 博客后台前后端部署 2.1 已部署访问链接 2.2 nginx 部署 2.2.1 后台后端发布 2.2.2 后台前端发布 2.2.3 云服务器部署 下次分享 1. ...
- CSS 3D - rotate旋转90度看不到的原理 和 解决方法
原理: 旋转元素的坐标有三个 :X(向右), Y(向左) , Z(向电脑屏幕的你) 当没有位移旋转元素时,元素 Z 坐标也会同着一起旋转 ,当一个物品旋转到90度时,我们只能看到它的厚度,而d ...
- [转帖]TiKV Control 使用说明
https://docs.pingcap.com/zh/tidb/stable/tikv-control TiKV Control(以下简称 tikv-ctl)是 TiKV 的命令行工具,用于管理 T ...
- [转帖]配置logback上报日志到Skywalking
https://zhuanlan.zhihu.com/p/506119895 配置logback上报日志到Skywalking 配置logback上报日志到skywalking需要引入toolkit依 ...
- [转帖]Linux命令拾遗-%iowait指标代表了什么?
https://www.cnblogs.com/codelogs/p/16060759.html 简介# 一直以来,我都知道top.vmstat.mpstat中有一个叫wa(%iowait)的cpu指 ...
- sringboot 调试端口启用的写法
注意 需要在 -jar 的后面加 加在前面貌似没用 $JAVA_HOME/bin/java -Dloader.path=$CAF_MODULE_PATHS -jar -Dspring.profiles ...
- ESXi6.7安装Win11的方法
背景 公司里面要进行新的操作系统验证了. 之前Win10 Win7 Win8 都比较简单. 就是现在Win11有了TPM非常繁琐. 今天必须得搞一把了,就简单搜索了下. 发现还是可以解决的. 然后记录 ...
- IBM Z15设备信息
- ElasticSearch必知必会-基础篇
商业发展与职能技术部-体验保障研发组 康睿 姚再毅 李振 刘斌 王北永 说明:以下全部均基于eslaticsearch 8.1 版本 一.索引的定义 官网文档地址:https://www.elasti ...