\(\mathscr{Summary}\)

  前期节奏太懒散,后面发现 C 题是水题都没时间写,提起精神来啊!

  A 题卡得比较久,对线性基的理解不够深刻,思来想去半天才把转移系数调对。B 题也卡,走起来就想“怎么优化”而没有深入去研究“求的什么”。C 题哈哈哈哈倍增长剖一个个伪,最后祭了一发暴力,明明那么蠢(而且貌似才做过)的点分的说。

\(\mathscr{A}-\) 神必的集合

  给定 \(m\) 对形如 \((x_i,y_i)\) 的限制,求 \(\{0,1\}^n\) 里有多少个 \(S\),满足 \(\forall x,y\in S\),\(x+y\in S\)(加法即异或),且 \(S\) 里第 \(x_i\) 大数是 \(y_i\)。

  \(n\le10\),\(m\le200\)。


  按照兔子一贯的坏习惯,不区分二进制数和 \(\{0,1\}^n\) 里的向量。

  我们只需要确定 \(S\) 的基 \(\mathscr S\) 的数量,就能求出 \(S\) 的数量。对于 \(\{y_{1..m}\}\) 的基 \(\mathscr Y\),显然有 \(\operatorname{span}(\mathscr Y)\subseteq\operatorname{span}(\mathscr S)\)。另一方面,不妨把 \(\mathscr S\) 和 \(\mathscr Y\) 规范化作上三角,也就是异或线性基求出来的那玩意儿。

  考虑若 \(\mathscr S\) 确定,比 \(y\) 小的数的数量 \(x-1\) 是如何算出来的。方便起见,令 \(x\leftarrow x-1\),显然若 \(x\) 含有 bit \(2^k\),就表明 \(\mathscr S\) 从低到高第 \(k\) 个基向量的最高 bit 被 \(y\) 包含。据此,对于任意 \(i,j\),我们能够判断 \(2^i\) 能否作为 \(\mathscr S\) 的从低到高 \(j\) 个基向量的最高 bit。

  据此,考虑 DP。令 \(f(i,j)\) 表示考虑了 bit \(2^{0..i}\),已经选择了前 \(j\) 小的基向量的方案数。当 \(\mathscr Y\) 在这一维有基向量时,这个时候我们只能当然只能 \(\mathscr Y\) 里对应位置上的基向量;否则,我们可以任意取 \(\{0,1\}^{i+1}\) 里一个不与已有的 \(j\) 个基线性相关的向量来扩展基,也可以不把 \(i\) 选入基。形式化地,令 \(c\) 为 \(2^i\) 能否作为第 \(j\) 个基向量,那么

\[\begin{cases}
f(i+1,j+1)\leftarrow^+cf(i,j), & \exist y\in[2^{i+1},2^{i+2})\in\mathscr Y\\
\begin{cases}
f(i+1,j+1)\leftarrow^+ cf(i,j)\times2^{i+1-j}\\
f(i+1,j)\leftarrow^+ f(i,j)
\end{cases}, & \text{otherwise}
\end{cases}
\]

至少可以做到 \(\mathcal O(n^2+nm)\)。

\(\mathscr{B}-\) 法阵

  给定 \(\{a_n\}\) 以及 \(q\) 次询问,每次给出 \([l,r]\),求 \(\max\{a_x+a_y+a_z\mid l\le x<y<z\le r,y-x\le z-y\}\)。

  \(n,q\le5\times10^5\)。


  注意到在固定 \(x\) 时,若有 \(x<y_1<y_2\),且 \(a_{y_1}\ge a_{y_2}\),那么 \(y_2\) 与 \(x\) 配对必然不如 \(y_1\) 优秀。因此,有效的 \((x,y)\) 必然在从左到右单调栈时相遇(\(y\) 弹掉 \(x\),或者 \(y\) 压入 \(x\) 的后面),这样的 \((x,y)\) 仅 \(\mathcal O(n)\) 对。

  既然 \((x,y)\) 很少,我们就去维护 \(z\)。把询问离线下来挂到左段点上,从右到左扫描 \(l\),对于每个 \(r\),维护此时 \(x\in[l,r],z\in[l+2,r]\) 的答案。放在线段树上,每次更新差不多就是区间取 \(\max\),可以做到 \(\mathcal O((n+q)\log n)\)。

\(\mathscr{C}-\) 旅行

  给定含有 \(n\) 个点 \(m\) 条边的无边权无向图,点 \(u\) 有属性 \(r_u\) 和 \(c_u\),表示对于所有 \(\operatorname{dist}(u,v)\le r_u\),可以从 \(u\) 花费 \(c_u\) 的代价走到 \(v\)。求从 \(1\) 出发到每个点的最小花费。

  \(n\le2\times10^5\),\(n-1\le m\le n+50\),\(c_u>0\)。


  这个 \(m\) 范围的提示性太强了,随便拿一棵生成树,树内点分建图,树外边还是向点分一样处理跨过某个点的路径信息,记 \(t=m-n+1\),暴力做复杂度为 \(\mathcal O(n\log^2n+nt\log nt)\),可以过。

  点分部分采用 two-pointers 建图,每次拿出 \(d_u+c_u\) 最小的点,从上次指针划到的位置继续更新,不把图显式地建出来。可以做到 \(\mathcal O(n\log n+nt)\)。

Solution Set -「LOCAL」冲刺省选 Round XXXI的更多相关文章

  1. Solution Set -「LOCAL」冲刺省选 Round XXV

    \(\mathscr{Summary}\)   读错题了读错题了 B 题差点没做出来真的太吓人了.   逆序开题,C 题直接冲一发暴力最大权闭合子图居然过了.A 题确实一下子没想到用"可能的 ...

  2. Solution Set -「LOCAL」冲刺省选 Round XXIV

    \(\mathscr{Summary}\)   名副其实的 trash round,希望以后没有了.   A 题算好,确实一个比较关键的简化状态的点没想到,所以只拿了暴力(不考虑 \(\mathcal ...

  3. Solution Set -「LOCAL」冲刺省选 Round XXIII

    \(\mathscr{Summary}\)   有一说一,虽然我炸了,但这场锻炼心态的效果真的好.部分分聊胜于无,区分度一题制胜,可谓针对性强的好题.   A 题,相对性签到题.这个建图确实巧妙,多见 ...

  4. Solution Set -「LOCAL」冲刺省选 Round XXII

    \(\mathscr{Summary}\)   和出题人很有缘分但是没有珍惜.jpg   A 题有一个显然的二维偏序斜率式,以及显然的 CDQ 套李超树 \(\mathcal O(n\log^2n)\ ...

  5. Solution Set -「LOCAL」冲刺省选 Round XXI

    \(\mathscr{Summary}\)   省选几个小时啊,怎么模拟赛只打三个小时啊./kk   时间安排较为合理,没有出现严重的因思考时间过少引起的丢分.   A 题比较可惜,二分 + 点分治大 ...

  6. Solution -「LOCAL」过河

    \(\mathcal{Description}\)   一段坐标轴 \([0,L]\),从 \(0\) 出发,每次可以 \(+a\) 或 \(-b\),但不能越出 \([0,L]\).求可达的整点数. ...

  7. Solution -「LOCAL」画画图

    \(\mathcal{Description}\)   OurTeam.   给定一棵 \(n\) 个点的树形随机的带边权树,求所有含奇数条边的路径中位数之和.树形生成方式为随机取不连通两点连边直到全 ...

  8. Solution -「LOCAL」充电

    \(\mathcal{Description}\)   给定 \(n,m,p\),求序列 \(\{a_n\}\) 的数量,满足 \((\forall i\in[1,n])(a_i\in[1,m])\l ...

  9. Solution -「LOCAL」二进制的世界

    \(\mathcal{Description}\)   OurOJ.   给定序列 \(\{a_n\}\) 和一个二元运算 \(\operatorname{op}\in\{\operatorname{ ...

  10. Solution -「LOCAL」大括号树

    \(\mathcal{Description}\)   OurTeam & OurOJ.   给定一棵 \(n\) 个顶点的树,每个顶点标有字符 ( 或 ).将从 \(u\) 到 \(v\) ...

随机推荐

  1. Linux 基础-文本处理命令

    概述 find 文件查找 grep 文本搜索 参考资料 概述 Linux 下使用 Shell 处理文本时最常用的工具有: find.grep.xargs.sort.uniq.tr.cut.paste. ...

  2. DHorse v1.6.0 发布,基于 k8s 的发布平台

    版本说明 新增特性 支持Codeup(阿里云云效)代码仓库: 支持环境的自动部署: 优化特性 管理员角色部署环境部需要审批: 优化页面展示: 升级指南 升级指南 DHorse介绍 DHorse是一个轻 ...

  3. Django admin实现图片上传到腾讯云

    官网参考:https://docs.djangoproject.com/zh-hans/3.2/howto/custom-file-storage/ 当前业务需要使用django的admin后台进行数 ...

  4. django性能分析工具之silk

    在开发过程中,有很多时候需要了解程序性能瓶颈,比如程序执行时间.网络耗时.数据库连接时间等:那接下来,django silk就派上用场了! 安装 https://github.com/jazzband ...

  5. Mac之终端工具iterm2

    1. 安装 iTerm2 下载地址:https://www.iterm2.com/downloads.html 下载的是压缩文件,解压后是执行程序文件,你可以直接双击,或者直接将它拖到 Applica ...

  6. 一步步教你学会如何区域录制屏幕转换成gif图

    现在各种表情包都是gif图,包括很多可能比较短暂的操作步骤,录制gif图也要远比录制成视频要来的方便很多. 1. GIF文件通常比视频文件小,这使得它们在网络传输中更加高效,尤其是在带宽有限的情况下. ...

  7. Mac m1 安装 Homebrew

    Homebrew 是 Mac 的包管理器,类似于 Linux 中的 apt,Windows 中的 choco. 自从 M1 芯片发布,Homebrew 正在积极适配新架构,如今已经有了原生支持 ARM ...

  8. 零基础学习人工智能—Python—Pytorch学习(十一)

    前言 本文主要介绍tensorboard的使用. tensorboard是一个可视化的,支持人工智能学习的一个工具. tensorboard的官方地址:https://www.tensorflow.o ...

  9. fiddler:The system proxy was changed.Click to reenable capturing

    前情 最近在开发一个老旧项目,由于本地环境已难跑起,于是想通过代理线上代码进行功能开发. 坑位 启动fiddler后,fiddler菜单栏会警告,大概意思是代理被更改了,点击重启fillder代理,但 ...

  10. 【巧用set实现对有序数组O(logn)时间复杂度增、删、查、改、二分操作】codeforces 1041 C. Coffee Break

    题意 第一行输入三个整数 \(n,m,d(1 \leq n \leq 2 * 10^5, n \leq m \leq 10^9, 1 \leq d \leq n)\),第二行输入 \(n\) 个整数, ...