aacord’s memo

abcを中心にpythonで解いた問題のメモ、整理をしています。緑になった。

文字列操作

agc 024 B,C (python)

文字列操作の問題2問。両方いけた。同じコンテストで連続して似たような題材を出すのはABCにはない感じがする。 どちらも操作回数の最小値を求めるものであるが、数え方が違った。Bは操作を行う必要がないものについて考えると上手くいく。 少なくとも文字…

abc 134 E - Sequence Decomposing (python)

数列を前から見ていって、二分探索でその数字が今の数字の色の種類のどれに上書きできるかをを探して、上書きできる奴で、一番数が大きいものにその数字を上書きする。 貪欲法の練習問題で箱を入れていくやつと同じ考え方。 D - プレゼント0 なら色の種類を …

abc 138 E - Strings of Impurity (python)

文字列をアルファベットのリストに入れていって二分探索したらいいやつ。 s = contest, t = cc みたいなときに 一つ目の c と二つ目の c が同じ答えにならないように 見ている t の位置が更新するたびに ans += 1 してデバッグするのに 15 分ほどで気づけた…

Tenka1 Programmer Beginner Contest C - Align (python)

C - Align数列を並び替えて隣り合う2数の差の最大値を求める問題。 直観的に一番小さいものと一番大きいものが隣り合うように、出来るだけ真ん中に置くように並べるのがいいと予想できるが、単にそれを実装するのではなく、 隣り合う2数の差 = 大きいもの…

abc 097 c (python)

文字列 s から作られる部分列の中で辞書順で k 番目に小さいものを求める問題。 k import sys input = sys.stdin.readline s = input().rstrip() l = len(s) k = int(input()) chk = set() for i in range(26): for j in range(l): if s[j] == chr(i+97): fo…

CODE FESTIVAL 2016 qual A-c (python)

C - Next Letter 先頭から a に変えれそうなら a に変える、最後尾までみたときにまだ k が残っているなら k が0になるまで最後尾の文字を変える s[ i ] を ' a ' にするときに毎回 s = s [ : i ] + ' a ' + s [ i + 1 : ] としているのは何とかならないの…

abc162 d(python)

一組ずつ条件に照らし合わせると当然TLEする Rがa個、Bがb個、Gがc個あるとすると、最大a*b*c個ある。 そこから条件2に当てはらないものを引いていくという方針。 条件2ではじかれるものは s[i] != s[i+m+1] and s[i+m] != s[i+2*m+2] and s[i+2*m+2] != …