2024/11/24

爆搜即可,注意优化状态数量。

例如:记录状态当前的点在哪和空位在相邻的哪一侧。

数据结构题。

考虑维护每一行,特殊维护最后一列,那么就是要实现这样几个操作:

  1. 删除第 \(k\) 个。
  2. 最后添加一个数。

显然可以平衡树,但是注意到点数很多,那么可以把连续的数拿一个区间表示,每次最多多两个点。

显然跑最短路,对于 \(v,w\) 的询问,显然如果 \(w>dis_v\) 满足要求,如果 \(w=dis_v\) 并且 \(cnt_v>1\) 那么也满足就要求,此时 \(cnt_v\) 减少 \(1\)

发现几个性质就很简单了。

二分,然后显然第 \(k\) 大的应当匹配 \(n\),然后往前依次匹配,如果失败了,显然无解。

简单区间 DP。

简单贪心,注意到一个区间合法,那么把这个区间联通的代价可以变小为这个区间的 gcd。

代码一坨。

posted @ 2024-11-24 16:22  incra  阅读(9)  评论(0)    收藏  举报