来补题了昂。

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. macOX常用快捷键(结尾有彩蛋)

    macOX的快捷键与windows10有所不同,了解了以后会更加提高我们的工作效率. Mac中主要有四个修饰键,分别是Command,Control,Option和Shift. 一.基本的快捷键: C ...

  2. kafka 性能优化与常见问题优化处理方案

    本文为博主原创,未经允许不得转载: 1.  JVM参数优化设置 kafka是scala语言开发,运行在JVM上,需要对JVM参数合理设置,修改bin/kafka-start-server.sh中的jv ...

  3. C#操作 excel 表格

    nuget引入: EPPlus.Core FileInfo file = new FileInfo(@"d:\test.xlsx"); using (ExcelPackage pa ...

  4. linux环境C语言实现:h265与pcm封装成AVI格式

    ​ 前言 不知道是处于版权收费问题还是什么原因,H265现在也并没有非常广泛的被普及.将h265数据合成AVI的资料现在在网上也基本上没有.使用格式化工厂工具将h265数据封装成AVI格式,发现它在封 ...

  5. 【Mysql系列】(二)日志系统:一条更新语句是如何执行的

    有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top 这篇文章是从Github ReadMe拷贝的,内容实践下载是没问题的,能够正 ...

  6. [转帖]tiup cluster scale-in

    https://docs.pingcap.com/zh/tidb/stable/tiup-component-cluster-scale-in tiup cluster scale-in 命令用于集群 ...

  7. [转帖]解释docker单机部署kraft模式kafka集群时,尝试各种方式的网络broker全部不通而启动失败的原因,并提示常见bug关注点

    现象: controller节点与其他两个broker的通信失败.公网ip,宿主机ip,服务名,各种网络方式,都无法成功. 两点提示: 1.bug原因:因为单机内存不够用,设置了较低的 KAFKA_H ...

  8. [转帖]linux的硬链接和软连接的区别

    Linux中有两种链接文件: 1)软链接(符号链接symbol),等同于Windows中快捷方式 ln -s 源文件名 符号链接文件名,源文件名和符号链接文件名是主从关系,源被删了,符号链接也就失效了 ...

  9. SPECJVM2008的简单结果

    SPECJVM2008的简单结果 摘要 前面两天学习了SPECJVM2008简单使用. 今天进行一下简单的数据采集. 需要说明一下SPECJVM2008貌似仅兼容JDK1.8 更新的LTS版本都不兼容 ...

  10. [转贴]loadrunner 场景设计-添加Unix、Linux Resources计数器

    loadrunner 场景设计-添加Unix.Linux Resources计数器   https://www.cnblogs.com/shouke/p/10158239.html 场景设计-添加Un ...