25.10.26

CF238E

首先我们虽然不知道路径长啥样,但肯定能求出必经点,而且我们感觉只能在必经点等到车。

然后就发现这个东西看着就很能做了,记录 \(f(i,j)\) 为在点 \(i\) 且在 \(j\) 列车上,到终点还有多少步,把必经点抓出来倒推即可。

然而这个东西是错的,发现会被一些结构卡掉,比如 \(1\to 2\to 4,1\to 3\to 4,2\to 3\) 这样的图上有 \(1\to 4,2\to 3\) 两条路,这样虽然 \(2,3\) 都不是必经点,但 \(1\) 一定能走到 \(3\) 上面。

这样原来的做法就倒闭了,我们就进坑了。

重新审视一下这个地皮能不能把非必经点拉进来,发现干扰我们的是非必经点不一定能拿到后继给的转移。

但是你考虑这个过程类似人车博弈,车无论怎么挑,它都得挑一个走,于是会选择最大的那个,也就是非必经点转移时要取后缀 \(\max\)

剩下的是个类拓扑类 01 最短路的东西,跑就完了。

CF1267I

这题貌似仙之人兮列如麻啊!

首先容易想到直接套快排 nth_element 的算法,每次删一下多的侧,感觉是定不出序的。

然后发现很容易被 \(n=3\) 创飞,这个做法 \(n\) 越小越容易飞。

那么我们需要提出一个 \(n\) 小时的做法然后阈值分治……都有做法了还分治个毛。

考虑一些确定性的构造。

注意到 \(n>2\),尝试给四个数,那么先问出 \(a<b,c<d,a<c\),我们就得到最小值是 \(a\)

为啥没问 \(b,c\) 呢?因为问了就可能完成定序了。

发现就做不动了,看来 \(n=2\) 好像不太容易。

不过拿到最小值是 \(a\) 也有好处,因为我们知道 \(b,c/d\) 间定不下序,所以可以把 \(a\) 拿去外面随便问,这样能确定 \(a\) 的具体排名。

诶那我们就可以把 \(a\) 删了,然后把 \(b,c,d\) 丢回去继续做,直到只剩 \(<4\) 个数,讨论一下发现可以保证最后一次仍然有定不下序的两个。

这个做法还是过于精妙了,有没有什么比较蠢的方法?

有的兄弟,考虑分成 \(n\) 对比较拿出大的那侧,然后得到了两堆。

大的一堆有的可能不要,小的那堆有的可能要,但需要改变的部分都不过半。

于是把大的一堆中大的一半保留,小的一堆中小的一半删去,然后得到新序列,再递归做即可。

CF267C

发现这个限制很强啊,而且长得比较畸形,比较好的考察就是写个高消。

但是看起来只能弄 \(m\) 个变量 \(n-2\) 个方程,而且这个显然列完条件也会有多解,如何是好?

所有最短路都是等长的,这个限制很奇怪,想一下会发现大概是在说这个图是分层状的,相邻两层间边都是一个定值。

那就可以给每个点设高度 \(h_i\),而且容易发现 \(h_1,h_n\) 的高度是随意的,然后能跑出一个解。

而这个解是不是最优其实会取决于 \(h_n-h_1\) 留出的高度差,可以通过放缩这个高度差(点乘上一个系数)来调整边权,也只能这么调。

那么找出最紧的约束然后调到那上面即可。

CF1458C

如果没有逆排列那维护偏移量就做完了。

考虑逆排列,会对一个 \((i,j,a_{i,j})\) 产生怎样的影响。

如果在行上做,那么 \((i,j,a_{i,j})\to (i,a_{i,j},j)\),而且这个变化是全局统一的。

诶那么我们就可以直接维护这个操作的影响,也就是记录三维的偏移量和 swap 到的维度,最后重新构建矩阵即可。

CF625E

这题就是暴力跳,预处理出每个青蛙创飞下一个青蛙要多久,然后取第一只出来创。

先建立个环,然后用优先队列不停取最快的一个就好,找下一只青蛙可以建双向链表,计算时间就是个追及问题。

这类题不要被诈骗了,一个特点是会删总计 \(\mathcal{O}(n)\) 次点,可以直接操作。

P11340

容易发现从三根链首开始,可以把在另两根链上的这个点前缀都加进答案。

考虑从最前面的 \(x\) 到最后面的 \(x\) 覆盖起来,那么这一段都是这个 \(x\) 的势力范围。

于是从链首开始把势力范围有交的区间不断加入就能求出能赢的前缀。

可以用线段树维护区间覆盖 \([l,r)\),然后找第一个中断的位置即可。

QOJ7899

直接 dp 是 \(\mathcal{O}(n^2)\) 的,把最值放到笛卡尔树上也没什么用。

考虑分治。

cdq 可以很好地优化这个 dp,那么修改呢?

容易想到我们先前后缀各跑一遍,然后再拼一次修改,发现不太算得清贡献。

这时就有说法了,注意到原本是用 \(mx\) 来跑的 dp,修改后变为了 \(mx'\),那么我们可以记两个算出来的分别是 \(dp,dp'\),求出 \(dp'-dp\) 这个差值,也就是修改造成的增量。

而这个就可以套之前 cdq 内的偏序做法了。

posted @ 2025-10-31 09:27  LQ636721  阅读(5)  评论(0)    收藏  举报