首页 > 技术文章 > 第 1-14+5+14 天的 (1-1)*4514 分

juruoajh 2021-06-04 20:50 原文

0.闲扯

抱灵了………………………………
喜欢跳闸的机房事屑
把学生电脑的闸拉掉的老师事屑

1.题解

A

给出一个无向图和两个人的起点终点,初始时每条边长度为 \(1\),可以给每条边施加 \(a\) 的魔法使得长度变为 \(\dfrac 1a\) 且施加魔法的总量 \(\le k\),最小化两人最短路之和。
我们可以枚举公共部分的起点和终点(显然是连续的一段),这样就知道了公共部分的长度和非公共部分的长度,发现分配魔法后的长度是单峰的,于是三分,但是会 TLE,我们发现公共部分长度固定时我们只会选择非公共部分最短的,这样只需要算一次。

B

现在随机给出一个不超过五位的数字,你猜的数字初始为 \(0\),每次操作是修改一位或询问一位与给出数字的大小关系,问保证能猜出一个区间 \([l,r]\) 中的所有数字至少需要多少次。
首先可以看出一个区间 dp,但是它连状态都要 \(O(n^2)\),显然是没有前途的。
注意到操作次数不会很多,所以我们可以把次数写进状态里,区间端点作为值。

C

题面
考虑对于每个不同的 \(x\) 计算,此时对于与平面无交的长方体一定要和 \(y,z\) 平面中的一个有交,也就是如下形状的合法区间的交:

但是这个玩意的交集是个啥啊,发现完全没法维护。正难则反,我们可以维护不合法区间(蓝色)的并,也就是下图中四角的阶梯型,需要判断的是红色区域是否存在。

维护这坨轮廓线需要知道端点,我们发现它们出现或消失的事件是常数个,然后用数据结构大力维护。

2.杂题选讲

Subset

给出 \(n\) 个数,求出两个权值和一样的不交子集。
根据鸽巢原理只需要看 \(22\) 个数就行了。

CF1322E(第一问)

对于中位数的题,我们先按照每个数和指定数的大小关系赋值,发现连续的 \(0\)\(1\) 是不会变的,只考虑交替的序列,我们维护最长的一段有多长即可。

CCPC Final 2019 C

dp。\(f_{i,j}\) 表示打完了前 \(i\) 个,剪贴板里是后 \(j\) 的代价。
然后随便转移就没了。

CCPC Final 2019 E

由于删去的只有周围一圈,所以大力分块。

推荐阅读