Solution Set -「LOCAL」冲刺省选 Round XXXI
\(\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\) 个基向量,那么
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的更多相关文章
- Solution Set -「LOCAL」冲刺省选 Round XXV
\(\mathscr{Summary}\) 读错题了读错题了 B 题差点没做出来真的太吓人了. 逆序开题,C 题直接冲一发暴力最大权闭合子图居然过了.A 题确实一下子没想到用"可能的 ...
- Solution Set -「LOCAL」冲刺省选 Round XXIV
\(\mathscr{Summary}\) 名副其实的 trash round,希望以后没有了. A 题算好,确实一个比较关键的简化状态的点没想到,所以只拿了暴力(不考虑 \(\mathcal ...
- Solution Set -「LOCAL」冲刺省选 Round XXIII
\(\mathscr{Summary}\) 有一说一,虽然我炸了,但这场锻炼心态的效果真的好.部分分聊胜于无,区分度一题制胜,可谓针对性强的好题. A 题,相对性签到题.这个建图确实巧妙,多见 ...
- Solution Set -「LOCAL」冲刺省选 Round XXII
\(\mathscr{Summary}\) 和出题人很有缘分但是没有珍惜.jpg A 题有一个显然的二维偏序斜率式,以及显然的 CDQ 套李超树 \(\mathcal O(n\log^2n)\ ...
- Solution Set -「LOCAL」冲刺省选 Round XXI
\(\mathscr{Summary}\) 省选几个小时啊,怎么模拟赛只打三个小时啊./kk 时间安排较为合理,没有出现严重的因思考时间过少引起的丢分. A 题比较可惜,二分 + 点分治大 ...
- Solution -「LOCAL」过河
\(\mathcal{Description}\) 一段坐标轴 \([0,L]\),从 \(0\) 出发,每次可以 \(+a\) 或 \(-b\),但不能越出 \([0,L]\).求可达的整点数. ...
- Solution -「LOCAL」画画图
\(\mathcal{Description}\) OurTeam. 给定一棵 \(n\) 个点的树形随机的带边权树,求所有含奇数条边的路径中位数之和.树形生成方式为随机取不连通两点连边直到全 ...
- Solution -「LOCAL」充电
\(\mathcal{Description}\) 给定 \(n,m,p\),求序列 \(\{a_n\}\) 的数量,满足 \((\forall i\in[1,n])(a_i\in[1,m])\l ...
- Solution -「LOCAL」二进制的世界
\(\mathcal{Description}\) OurOJ. 给定序列 \(\{a_n\}\) 和一个二元运算 \(\operatorname{op}\in\{\operatorname{ ...
- Solution -「LOCAL」大括号树
\(\mathcal{Description}\) OurTeam & OurOJ. 给定一棵 \(n\) 个顶点的树,每个顶点标有字符 ( 或 ).将从 \(u\) 到 \(v\) ...
随机推荐
- 【241027-论文阅读】DGraph: A Large-Scale Financial Dataset for Graph Anomaly Detection
DGraph: A Large-Scale Financial Dataset for Graph Anomaly Detection DGragh是一个用于图异常检测(gragh anomaly d ...
- 使用ob_tools包收集分析oceanbase数据库oracle租户缓慢sql语句
概述 1.手册目的: 本手册旨在提供一种系统化的方法论,以便发现和分析慢SQL语句.通过使用ob_tools包,收集和分析在交付期间,应用程序在不同场景下进行压测时所产生的慢SQL语句,从而实现性能调 ...
- CSP模拟58联测20 T3 注视一切的终结
CSP模拟58联测20 T3 注视一切的终结 题面及数据范围 Ps:链接为衡水中学OJ. 去除重边以后是树,而我们需要使一个点到另外一个点的简单路径上相邻边的颜色尽可能不相同. 发现如果一条边有 \( ...
- memcached简介及java使用方法
一. 概念 Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能. 二. 适用场合 1. 分布式应用 ...
- Linux之密码生成工具pwgen
linux中生成随机字符串,可以使用pwgen 安装) ubuntu: apt-get install pwgen Centos: yum install pwgen 语法及参数) pwgen [ O ...
- 使用gulp 压缩js
js 编写后文件太大,可以使用gulp 来进行压缩. 具体步骤如下: 1.创建一个工作目录 在该目录下安装 gulp npm install gulp 安装gulp-uglify 模块 npm ins ...
- Winform在主窗体里切换多个窗体
1.点击解决方案资源管理器的项目名称,右键添加用户控件(Windows窗体). 2.在主窗体代码中实例化添加的用户控件(Windows窗体). 点击查看代码 UserControl1 userCont ...
- 一个 tomcat 下部署多个项目(超细另类版)
前言:网上大佬们的都是一个webapps下面部署多个项目,咱们今天来点不一样的,另一种思路则是,多个webapps,每个webapps下面运行一个项目,不知如何本地部署的可以去看看我上一篇随笔 具体步 ...
- vtkCellLocator IntersectWithLine 返回不是最近的交点
vtkCellLocator IntersectWithLine 有一个重载函数(下面),返回不是最近的交点,因为到交点的距离没有比较,就直接覆盖了.不知道原本是否就是这样.可以用其他重载代替. in ...
- 【Amadeus原创】docker安装TOMCAT,并运行本地代码
1,docker 下载tomcat [root@it-1c2d ~]# docker pull tomcat ... [root@it-1c2d ~]# docker images REPOSITOR ...