Official
A - DEGwer's Doctoral Dissertation Editorial
by
A - DEGwer's Doctoral Dissertation Editorial
by
hitonanode
以下の貪欲法が正当です。
- 全ての誤植を、それらが存在するページで昇順ソートする。
- ソート後の先頭の要素から、その誤植を修正するかどうか決めていく。今見ている誤植が、修正しないことに決めた最後の誤植から \(T\) ページ未満しか離れていない場合、その誤植を修正する。それ以外の場合は修正しない。
計算量は、最初のソートに比較ソートを用いると \(O(K \log K)\) で、バケットソートを用いれば \(O(N + K)\) で実装することも可能です。
実装例(Python)
N, K, T = map(int, input().split())
A = sorted(map(int, input().split()))
last_typo_pos = -T
ret = 0
for a in A:
if a < last_typo_pos + T:
ret += 1
else:
last_typo_pos = a
print(ret)
posted:
last update: