求助站外题

学术版

@[我不是sb我是bs](/user/482254) 二分答案 $t$,之后 $O(n)$ 验证能否在 $t$ 内干掉所有“椅子” 枚举每一个椅子段,如果这一段的长度 $l$ 满足 $t<l\le 2t$,那么就必须用两个人相向而行才能干掉;否则一个人就够。 事先将段按照长度排序,每次 check 优先固定长度大于 $t$ 的,之后看剩余的段能不能匀过来。 总时间复杂度 $O(n \log n)$
by Echidna @ 2022-05-14 16:31:21


![](https://cdn.luogu.com.cn/upload/image_hosting/me6pdo05.png?x-oss-process=image/resize,m_lfit,h_170,w_225) 如果是图上的情况,那最优的方法应该是点C、点E相向而行,点B、点D相反而行。 @[Echidna](/user/82284)
by zswangziye @ 2022-05-14 16:44:58


@[zswangziye](/user/243962) @[我不是sb我是bs](/user/482254) 确实没考虑到这种情况 二分答案 $t$ 。如果不存在一个椅子段长度大于 $t$ ,则这个答案一定可行,可以增大 $t$,否则 check。 于是在 check 时,一定有一段长度大于 $t$ 。考虑将这一段从中间裂开,破环为链。容易证明这样破环的正确性。 接着考虑破环为链之后的序列,可以使用贪心算法:假设现在前 $x$ 个椅子都已经被破掉了,找到一个最靠右的节点 $q$ 满足 $pos_q-t\le x$ ,让 $q$ 向左走,让 $q-1$ 向右走。
by Echidna @ 2022-05-14 17:22:06


@[Echidna](/user/82284) 不懂就问,$pos_q$是啥
by _AIR @ 2022-05-14 21:29:56


@[我不是sb我是bs](/user/482254) 就是破环为链之后 $q$ 的位置 我没说清楚 ![](https://啧.tk/qd)
by Echidna @ 2022-05-14 21:30:53


@[Echidna](/user/82284) 二分答案t如果满足不应该是减小吗
by _AIR @ 2022-05-14 21:33:54


@[我不是sb我是bs](/user/482254) 对 我打错了
by Echidna @ 2022-05-14 21:34:43


@[Echidna](/user/82284) 好的感谢
by _AIR @ 2022-05-14 21:35:59


@[我不是sb我是bs](/user/482254) 草 不一定对哦!
by Echidna @ 2022-05-14 21:37:24


@[我不是sb我是bs](/user/482254) 不知道这个题是怎么搞出来的,看样子是某个 OIer 出的题,然后不会 std 就来洛谷问 这个题我的贪心正确性不能保证,如果没有已知的 std 的话,这题有没有 std 都不能保证。
by Echidna @ 2022-05-14 21:38:51


| 下一页