随笔分类 -  other

摘要:记直径为$(x,y)$,则有以下做法: 利用直径的经典做法,可以$3n$次询问得到$x,y$和其余点到$x,y$的距离 设直径上距离$i$最近的点为$k$,已知$x,y,i$两两距离,即可解出$k$到$x,y,i$的距离 注意到$r(k)=\max{dis(k,x),dis(k,y)}$,即中心城市 阅读全文
posted @ 2023-03-27 16:12 PYWBKTDA 阅读(107) 评论(0) 推荐(0)
摘要:为了方便,以下位运算中均省略$\and$ 将$a_{2}$的每一位拆开,对于第$i$位,将该位乘$a_{1}$的结果放到$a_{A_{i}}$上 具体的,将该位单独取出放在最低位,并倍增使其余位与其相同 ${\rm SET\ 3\ 2}\ |\ {\rm LSH}\ 3\ 63-i\ |\ {\rm 阅读全文
posted @ 2023-03-07 21:58 PYWBKTDA 阅读(122) 评论(0) 推荐(0)
摘要:以下描述部分方向代指该方向的塔,建议画图理解 不妨假设左下的塔数$\ge 2$,这些塔覆盖区域构成阶梯形 考虑阶梯的交点,若其被左上/右下覆盖,则总可以去掉其中一个左下 换言之,这些交点均被右上覆盖,进而未覆盖区域构成两个$\frac{1}{4}$平面(左上和右下) 同时,由于左上/右下不允许覆盖阶 阅读全文
posted @ 2023-02-27 22:57 PYWBKTDA 阅读(144) 评论(0) 推荐(0)
摘要:记$m=n+1$,注意区分"格子"和"格点" 由于不能有公共格点,不妨从此角度分析—— 格点有$m\times m$个,每次覆盖其中$2\times a$的矩形(其中$a\ge 2$) 覆盖格子与格点总数的关系为$s\rightarrow 2(s+k)$,即最大化两者等价 $2\times 2$的未 阅读全文
posted @ 2023-02-13 22:47 PYWBKTDA 阅读(120) 评论(0) 推荐(0)
摘要:维护两个集合$S$和$T$,表示当前最后一个询问正确/错误时可能的答案 初始$S=[1,10^{9}]$且$T=\empty$,每次划分$\begin{cases}S=S_{1}\cup S_{2}\ T=T_{1}\cup T_{2}\end{cases}$,并返回$[x\in S_{1}\cup 阅读全文
posted @ 2023-01-27 19:26 PYWBKTDA 阅读(55) 评论(0) 推荐(0)
摘要:为了方便,以下"上下左右"均基于通常的平面直角坐标系 考虑未被喂食的蚂蚁,即构成最大独立集,也即可以看作: 作一条从左上出发,不断向右/下的折线,最大化折线下方白点数+上方黑点数 由于黑点总数确定,这又等价于最大化折线下方白点数-黑点数 显然随着白点的加入,折线下方区域单调不降 对时间分治,求出$m 阅读全文
posted @ 2023-01-27 12:12 PYWBKTDA 阅读(81) 评论(0) 推荐(0)
摘要:最大密度子图 二分枚举答案$k$,问题即求$\max_{V}\left(\sum_{x,y\in V}[(x,y)\in E]-k|V|\right)$ 记$d_{x}$为$x$的度数,则上式也即$-\frac{1}{2}\min_{V}\left(\sum_{x\in V,y\not\in V}[ 阅读全文
posted @ 2022-09-28 18:54 PYWBKTDA 阅读(75) 评论(0) 推荐(0)
摘要:关于后手的策略,等价于限制先手在前$2i$个数中至多选$i$个 当$|[l,r]|$为奇数时,先手必然取走$a_{r}$,并以此转换为$[l,r)$的问题 在此基础上,对$l$的奇偶性分类讨论,并以此将相邻两数合并为一组 考虑分治,除递归的部分外,问题即实现以下步骤: 1. 求出$[l,mid]$后 阅读全文
posted @ 2022-08-17 14:06 PYWBKTDA 阅读(117) 评论(0) 推荐(0)
摘要:假设有$2k$次询问,考虑让每条边恰在$k$次询问中出现 对于$k$的上界,均满足${2k\choose k}\ge n-1$,即可令每条边出现状态不全相同 此时,对于任意两点$(x,y)$,有$(x,y)\in E\iff x,y$恰在$k$次询问中连通 $x,y$连通$\iff x$到$y$路径 阅读全文
posted @ 2022-08-09 09:27 PYWBKTDA 阅读(150) 评论(0) 推荐(0)
摘要:将过程倒序,即每次放$\sum w_{son}$个石子并收回$w_{i}$个石子,并要求父亲优先于儿子操作 关于这个问题,其中一个弱化版(仅询问根节点)即hdu6326,具体做法可参考该链接 在此基础上,对每一个节点维护(仅考虑其子树内时)当前该点上的"怪兽"属性 此时,将$k$合并即将 $fa_{ 阅读全文
posted @ 2022-06-26 16:58 PYWBKTDA 阅读(60) 评论(0) 推荐(0)
摘要:构造$\{t_{i}\}=10101\cdots $,此时将$10$分别看作$\pm 1$,则其前缀和$\in \{0,1\}$ 此时,将两者"乱序归并"后,其对$\{s_{i}\}$前缀和的影响不大,进而有以下构造—— 记$a_{i}$为$A$二进制下第$i$位,$\forall i\in [1, 阅读全文
posted @ 2022-04-20 08:36 PYWBKTDA 阅读(147) 评论(0) 推荐(1)
摘要:记$S=\{(i,j)\mid s_{i,j}=*\},T_{i,j}$表示获得$(i,j)$上礼物的时间,问题即求$E(\max_{(i,j)\in S}T_{i,j})$ 考虑$\min\max$容斥,即$\max_{(i,j)\in S}T_{i,j}=-\sum_{S'\subseteq S 阅读全文
posted @ 2022-03-11 19:12 PYWBKTDA 阅读(81) 评论(0) 推荐(0)
摘要:为了方便,以下记$w=\log \max a_{i}$(本题中$w\le 128$) 建立线段树,对每一个点维护$w$个数,第$i$个数表示区间内(二进制下)第$i$位为1的数个数 将这$w$个数用写成二进制的形式,得到一个$w\times \log len$的01矩阵,转置后即变为$\log le 阅读全文
posted @ 2022-03-02 15:36 PYWBKTDA 阅读(71) 评论(0) 推荐(0)
摘要:记$\Delta x_{i}=x_{i+1}-x_{i}$,并定义$\Delta x_{0}=\Delta x_{n}=\infty$ 以$i$为右端点,记$rs_{j}=\begin{cases}\min(\Delta x_{i},\Delta x_{i-1})&j=i\\ \Delta x_{j 阅读全文
posted @ 2022-02-25 16:11 PYWBKTDA 阅读(218) 评论(1) 推荐(0)
摘要:瞬移后无法区分两者,分开时不妨称下一次瞬移的为分身,即仅允许分身瞬移回本身 考虑本身,即从根节点出发向下移动的一条路径,并称路径上分身曾瞬移到的点为关键节点(包括根节点) 对关键节点dp,定义$f_{k}$表示当前两者均在$k$且$k$子树外所有点均被经过的最短时间 枚举上一个关键节点,分析两者的移 阅读全文
posted @ 2022-02-22 12:40 PYWBKTDA 阅读(80) 评论(0) 推荐(0)
摘要:将其按照$(S_{i},P_{i})$递增排序,此时问题即选择$k$对括号并最大化$\sum_{i\in R}P_{i}-\sum_{i\in L}P_{i}$ 结论:对于$k$时的最优选法$(L_{k},R_{k})$,存在$k+1$时的最优选法$(L_{k+1},R_{k+1})$满足$L_{k 阅读全文
posted @ 2022-02-16 19:50 PYWBKTDA 阅读(76) 评论(0) 推荐(0)
摘要:问题即是要对一个栈支持:1.加入一个元素;2.删除最早加入的元素(各有$m$次) 做法1(题解中的算法2) 将栈中的元素标记为01,并按如下方式维护: 1.对于加入操作,直接将其加入并标记为1 2.对于删除操作,对其分类讨论—— (1)若栈顶标记为0,直接弹出即可 (2)若栈顶标记为1,不断弹出栈顶 阅读全文
posted @ 2021-12-19 13:11 PYWBKTDA 阅读(288) 评论(5) 推荐(2)
摘要:将右侧$n$个点逆序排列,并将左侧的第$i$个点插入到右侧的$a_{i}$之前(左侧的点顺序任意) 换言之,一个左侧的点恰与(排列中)其之后所有右侧的点有边 对于一个简单环,仅保留(排列中)前$i$个点的以及之间的边,那么总会得到若干条链或一个环,而其中所有链的两个端点必然都在左侧(否则这个右侧的点 阅读全文
posted @ 2021-11-10 15:44 PYWBKTDA 阅读(564) 评论(0) 推荐(3)
摘要:考虑使用平衡树维护该序列,操作显然可以用fhq treap的分裂+合并来实现 进一步的,问题即变为维护哪些信息来支持push up的操作(并判定是否存在$a_{i}<a_{j}<a_{k}$),容易想到去维护区间最大值/最小值、最大的$a_{i}$/最小的$a_{j}$满足存在$a_{i}<a_{j 阅读全文
posted @ 2021-10-29 13:58 PYWBKTDA 阅读(177) 评论(0) 推荐(0)
摘要:注意到当操作确定后,显然操作顺序总是涂黑色的1操作->涂白色的1操作->2操作 用$b/w_{r/c}(i,j)$表示$(i,j)$是否被黑色/白色 横着/竖着 涂过(1表示涂过,0表示没有),注意到当这些信息被确定后,已经可以确定是否可行以及对应的代价 具体的,考虑一个格子$(i,j)$,对其进行 阅读全文
posted @ 2021-10-28 16:11 PYWBKTDA 阅读(346) 评论(0) 推荐(2)