trick总结

1

竞赛图中如果有多个排列都按权值大的向权值小的连边,那么可以将一个排列主元,即固定他一定是从小往大的一个排列,并把他称做原图,其他连边进行辅助,我们会发现一个惊人的事实,一个点能到的向后的点一定在一个SCC中,我们考虑证明它:
我们把向后的辅助边连上后会发现如果两个辅助边有交那么你可以通过原图中的边使得你走到这两个辅助边的交集,所以我们可以走到这个并集中的任意一个点。我们会发现这样做完之后,会出现若干个连续的SCC使得里面的点都可以互相到达,我们还可以发现这些连通块的分界点是前缀 max \(<\) 后缀 min,更进一步,由于这是一个排列,所以上面这个条件也可以转化为更好统计的前 \(i\) 个位置出现了 \(1 \sim i\) 中的所有数这就是一个分界点。假设有 \(k\) 个辅助排列,那么这样就可以变成 \(\sum_{i=1}^{n} \sum_{j=1}^{k} a_{i,j}-i = 0\) 的点,这里 \(a_{i,j}\) 指的是在原图权值为 \(i\) 的元素在第 \(j\) 个辅助图中的权值。注意到这个东西一定非负,所以维护关于 \(min\) 的信息即可。
例题:2147F - Exchange QueriesP11340 [COI 2019] TENIS

2

当转移只关注相对大小时,可以把状态设为 \(0/1\),表示 \(x<=V\),之后再枚举具体的值去转移。

posted @ 2026-06-05 14:36  lmy333  阅读(17)  评论(0)    收藏  举报