来补题了昂。

D1T1 轻重边

对于原树进行重链剖分,使用一颗线段树维护每一条重边是否时“重边”,然后对于轻边,在父亲出维护最后一次通过 \(1\) 操作清空“重边”的时刻,在查询时只会遇到 \(O(\log n)\) 条轻边,直接查询这个轻边时“重边”的时刻是否晚于父亲清空的时刻即可。

D1T2 路径交点

LGV 引理板子题,记 \(e_{u,v}\) 表示从 \(u\) 走到 \(v\) 的方案数,则最终答案就是:

\[\begin{vmatrix}
e_{u_1,v_1}&e_{u_1,v_2}&\dots &e_{u_1,v_n}\\
e_{u_2,v_1}&e_{u_2,v_2}&\dots &e_{u_1,v_n}\\
\vdots&\vdots&\ddots &\vdots\\
e_{u_n,v_1}&e_{u_n,v_2}&\dots &e_{u_1,v_n}\\
\end{vmatrix}\]

的值,直接求解即可。

D1T3 庆典

首先对图进行缩点,得到一张 DAG,我们原题需要维护的东西与连通性有关,所以考虑在不影响连通性的情况下改变这个图的结构。

考虑题设给出的性质:如果 \(x\to z\) 且 \(y\to z\),则有 \(x\to y\) 或 \(y\to x\)。

不妨设为 \(x\to y\),则删去边 \(x\to z\) 不影响图的连通性,由此,我们可以不断调整结构将原图变成一棵外向树。

现在考虑加入 \(k\) 条边后的问题,实际上被影响到的点只有那 \(2k+2\) 的点,对于这些点建立虚树,对正反边各跑一次管搜即可。

D2T1 量子通信

由于数据随机生成,所以可以认为单词是均匀分布的,由于被影响的位数 \(\le 15\),所以将所有的单词 \(16\) 位一段,则至少有一段适合某个单词完全相同的。所以只需要查这些单词即可,考虑单次需要查询的个数:\(\dfrac{n}{2^{16}}\times 16=\dfrac{n}{4096}\) 个,使用 bitset 优化查询,时间复杂度为 \(\dfrac{nm}{16w}\),可以通过。

D2T2 密码箱

通过推式子,发现 E 操作完全等价于维护后者,即

先给数列的最后一项减 \(1\),接着在数列尾再加两项,两项的值都是 \(1\)。

则目前所有的操作均为对最后一项进行修改,发现可以实时维护后缀操作得到的分数 \(\dfrac{A}{B}\) 的 \(A\) 和 \(B\) 分别是多少。

具体的,这两个矩阵为 \(\begin{bmatrix}1&1\\0&1\end{bmatrix}\) 和 \(\begin{bmatrix}2&-1\\1&0\end{bmatrix}\)。

使用支持区间翻转的平衡树维护即可,时间复杂度 \(O(n\log n)\)。

D2T3 机器人游戏

考虑容斥,记 \(cnt(S)\) 为选择 \(S\) 这些位置为起点合法的纸条方案数,则最终答案为 \(\sum\limits_{S}(-1)^{|S|+1}cnt(S)\)。

对于一个机器人的操作,均可以被描述成四种:\(0\),\(1\),\(x\) 和 \(1-x\),分别表示修改成 \(0\),修改成 \(1\),不改变和反转。

我们钦定 \(S\) 中最大的位置为 \(p\),我们对于这个 \(p\) 的位置进行 DP,则 所有机器人的操作长度应 \(\le n-p+1\),同时最多只有前 \(p\) 位可能被操作,所以实际上会影响到当前位的只有 \(\min(n-p+1,p)\le \dfrac{n}{2}\) 位,考虑设计状态 \(f_{i,S}\) 表示处理到了第 \(i\) 位,前若干位选择状态为 \(S\) 的带符号和。

发现如果同时出现 \(0\) 和 \(1\),或者同时出现 \(x\) 和 \(1-x\) 这两对相互矛盾的,则只能选择空到空,有 \(1\) 种方案。

如果 \(0\),\(1\) 与 \(x\),\(1-x\) 各出现一个,如果不为空,则可能的状态就确定了,有 \(2\) 种方案。

其他情况下,每一个输入会对应唯一的输出,有 \(3\) 种方案。

只需要对所有满足操作长度 \(\le n-p+1\) 的统计出分别有多少个满足上述条件的方案即可,使用 bitset 优化,时间复杂度为 \(O(\dfrac{nm2^{\frac{n}{2}}}{w})\)。

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

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

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

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

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

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

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

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

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

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

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

  6. LeetCode随缘刷题之最短补全词

    package leetcode.day_12_10; import org.junit.Test; /** * 给你一个字符串 licensePlate 和一个字符串数组 words ,请你找出并返 ...

  7. Oracle补全日志(Supplemental logging)

    Oracle补全日志(Supplemental logging)特性因其作用的不同可分为以下几种:最小(Minimal),支持所有字段(all),支持主键(primary key),支持唯一键(uni ...

  8. Mac下git命令自动补全

    当我第一次在mac上安装git,[tab]补全装成功了,但是我没有记录,当我过一段时间在重装的时候,我已经忘记了,又是各种查资料,再次做一下简单的记录. 首先,我因为还是mac小白,所以使用Homeb ...

  9. 记一个同时支持模糊匹配和静态推导的Atom语法补全插件的开发过程: 序

    简介 过去的一周,都睡的很晚,终于做出了Atom上的APICloud语法提示与补全插件:apicloud_autocomplete.个中滋味,感觉还是有必要记录下来的.代码基于 GPL-3.0 开源, ...

  10. gocode+auto-complete搭建emacs的go语言自动补全功能

    上篇随笔记录了在emacs中使用go-mode和goflymake搭建了go语言的简单编程环境(推送门),今天来记录一下使用gocode+auto-complete配置emacs中go语言的自动补全功 ...

随机推荐

  1. Kubernetes APIServer 最佳实践

    1. kubernetes 整体架构 kubernetes 由 master 节点和工作节点组成.其中,master 节点的组件有 APIServer,scheduler 和 controller-m ...

  2. 《DREEAM Guiding Attention with Evidence for Improving Document-Level Relation Extraction》阅读笔记

    代码   原文地址   预备知识: 1.什么是K-L散度(Kullback-Leibler Divergence)? K-L散度,是一种量化两种概率分布P和Q之间差异的方式,又叫相对熵.在概率学和统计 ...

  3. 基于java+springboot的宠物商店、宠物管理系统

    该系统是基于java+springboot开发的宠物商城,用户可以登录该网站购买宠物.该系统是给师弟开发的课程作业.运行过程中的问题,可以咨询github或留言. 演示地址 前台地址: http:// ...

  4. 【TouchGFX】屏幕概念

    Screen构成 界面布局 View, 逻辑处理 Presenter Currently Active Screen 因TouchGFX分配内存的的方式是,按照最大的Screen分配,即最大View+ ...

  5. Nginx的日志处理

    Nginx的日志处理 背景 之前一直被各种咨询nginx的使用问题. 大部分都是性能, 加模块, 以及一些tcp端口等的问题. 其实这些都还好, 还有一个比较麻烦的问题时日志相关的. nginx的日志 ...

  6. 查看正在运行容器的环境变量-寻找容器运行mysql的root密码

    查看正在运行容器的环境变量-寻找容器运行mysql的root密码 背景 有一个服务器上面运行着一个长达两年的mysql数据库实例. 因为当时root密码是通过环境变量注入进去的. 现在我想重新连接一下 ...

  7. [转帖]设置CMD默认代码页为65001或936

    https://www.cnblogs.com/songzhenhua/p/9312769.html 之前不知道怎么改的,CMD的代码页被默认设置成了65001   但我右击CMD标题,选择'默认值' ...

  8. [转帖]关于面试时HA(RAC)会问到的一些问题

    1.什么是RAC(Real Application Cluster)? RAC(Real Application Cluster)是Oracle数据库的一种部署架构,它将多个数据库服务器连接在一起,共 ...

  9. [转帖]JMETER结果分析

    https://www.cnblogs.com/a00ium/p/10462892.html 我相信你同意:有很多方法可以收集和解释JMeter结果,你会感到迷茫. 嗯,看完这篇文章后,您将了解收集和 ...

  10. [转帖]kafka搭建kraft集群模式

    kafka2.8之后不适用zookeeper进行leader选举,使用自己的controller进行选举 1.准备工作 准备三台服务器 192.168.3.110 192.168.3.111 192. ...