きろく

特筆すべき記録のまとめ

AISing Programming Contest 2019 / エイシング プログラミング コンテスト 2019:D - Nearest Card Game

問題

atcoder.jp

解法

2人の操作後の各カードの所属は,N が偶数のとき「TATA...TAAA...ATT...T」のように高橋君と青木君が交互になっている区間区間1)・青木君の区間区間2)・高橋君の区間区間3)となっている.また.区間2と区間3の境界 k が分かれば,区間2・3の長さは (N - k) となり,答えを求めることが出来る.

この境界 k を二分探索で求める.x を超える A_i のうち最小の i を L とすると,k は

L - 1 <= k < N

の範囲を動く.もし,L - 1 が N 以上である場合は区間2・3が存在しない(⇔ 区間1しか存在しない).区間2と区間3が重なっている場合,その k は不適であり,重なっていない場合,その k は適当である.これを繰り返し k を求め,前計算で A の累積和を求めて置き答えを O(1) で計算する.O(QlogN).

解答

atcoder.jp

f:id:babcs2035:20190124222110p:plain