[AGC006D] Median Pyramid Hard

题意

给定一个 \(n\) 层的金字塔。

\(n\) 层有一个 \(1\)\(2 \times n - 1\) 的排列。

\(n\) 层以外每个数组都是下面三个数字的中位数。

求第一层的数字。

Sol

考虑二分答案的正确性。

注意到如果 \(i\) 不是中位数,那么 \(j \le i\) 一定要么被 \(i\) 干掉,要么被干掉 \(i\) 的数字干掉。

所以有单调性。

套路地,将每个数字变为 \(0/1\) 表示是否大于当前的数字。

发现顶层数字是离中间最近的两个相邻相同的数字。

最后特判没有相邻相同的数字即可。

posted @ 2024-01-16 21:26  cxqghzj  阅读(11)  评论(0编辑  收藏  举报