MMA Contest 022 ABCDEFGHIJ 10完
A max(sum(A)-X, 0)
B 全探索
C ヒープキュー
D 個数数えてから埋める
E 桁DPの要領で前から埋める Nより大きくなったら後から改変する
F 必要条件を考える
G 有向辺をつないでトポソしてDP
H エスパー
I ビットごとに数える
AtCoder Beginner Contest 473 ABCDEFG 全完
A sum(A[N//2:])
B ランレングス圧縮
C max-1個以上の数字の個数
D 全探索 調和級数で間に合う
E +1は1つ手前のみ遷移
F 括弧列で考えて、全体の深さと最小深さを持つ
G 外したらそのカードは2回使う 前から最小を引くか引かないかになって分割統治FFT
yukicoder contest 511 ABCDEFG 全完
A print(S[0]+"."+T[0]+".")
B Biが1以上なら引いて0なら答えを足す
C 6個ずつまとめて置いて最後まで飛ばす
D SCC
E ループを検出したら最後まで飛ばす
F セグ木のブロックごとに1個も作れなくなるまで連結させる
AtCoder Beginner Contest 472 ABCDEG 6完
A ループ回して変える
B 全探索
C しゃくとりっぽく更新 フラグで食べたか管理する
D BFS
E 頂点2倍にしてUFでつないだ後、頑張って経路を復元する
F ?
G dp[i][S] = i段目まで見て空の区間の集合がSのときの最大値 空の区間は高々15個なので間に合う
AtCoder Regular Contest 227 ABC 3完
A 中央値に置く
B Ai = iとなる場所に置けるだけ置いてから、残りは左から置けるものの中から一番大きいものを貪欲に置く
C 全て同じ文字列になる分け方の中でなるべく多いグループに分割 グループの左端と右端を合流させられればよい 上限が大きいため貪欲に移動
AtCoder Beginner Contest 471 ABCDEF 6完
A 割り算だけ丁寧に判定
B lower()して辞書に入れる
C 左と右のインデックスを持つ
D -tしてヒープキューに入れて出したときに+tする
E 積の和典型
F (長さ、文字列)で降順ソートして前K個を取る 数字として一番でかいやつを使ってなかったらそれを優先する
yukicoder contest 509 ABCDEH 6完
A 個数が多い方で均等になるまでペアを作れるか判定する
B ad-hocに構築するのを諦めてオイラー路の構築アルゴリズムを書いたが、こっちが想定解だった
C 掛け算は和が同じなら均等であるほど答えが大きいため、最上位桁だけ片方に譲ってもう片方を最大化する