aacord’s memo

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

実験して法則をみつける

agc 013 C - Ants on a Circle (python)

diff が一つ上がるごとに発想が一つ増える感じがする。 緑なら一つ、青diff なら二つといったイメージ 今回の問題は橙diff で実験から3つのことが分かるかどうかみたいな問題だった。1. ボール i が衝突を考慮しないで t 秒たったときの位置には 1 ~ n まで…

abc 083 D - Wide Flip (python)

XOR っぽいけど本質はそこじゃない感じの問題。 本質は s = 0011100... と並んでいたら、s[0 : ], s[2 : ], s[5 : ] で操作する回数が異なっている必要があるということ。 なので s[2], s[5] で区切る必要があり、これを満たす最大の長さは min( max(2,len(s…

abc 165 e Rotation Matching (python)

サンプル2が結構ヒントになった。 まず m が最大値の時に条件を満たせばいいとわかる。 そして、初めの割り当ての2数 ( a, b ) の差(a 一周すると (1,b+n-a+1) となるから、 n = 奇数のときは一周すると偶奇が変わる、n = 偶数のときは偶奇が変わらないと…

CADDi 2018 D - Harlequin (python)

D - HarlequinAtCorder Problems でおすすめされていたので解いた 実験していくうちに、A1,A2,..,A(n-1),An と A1,A2,...,A(n-1),An+2 A1,A2,..,A(n-1),An,2 との勝者が同じではと気づいた よってA の中に奇数が一つでもあれば first になり、すべて奇数な…

abc 125 D - Flipping Signs (python)

最近緑diff をすんなり解けるようになって成長を感じる。上達というよりは緑diff 程度の問題なら考えることはこのくらいかな~みたいな頭の動かし方に慣れてきたんだと思う。今回は数列の隣り合う2数の正負を好きなようにして最大値を求める問題。 負の数が…

abc 121 d 'XOR World' (python)

a から b までのXORの累乗和を計算する問題 1から15までのXORの累乗和を順に求めていくと、 1、11、0、100、1、111、0、1000、1、1011、0、 1100、1、1111、0 となっていき、3 (mod4)のときに0になることがわかる また、…