Atcoder

ABC 128C - Switches

問題概要 C - Switches 解法(解説AC) bit全探索を行う。 この問題系は虚無でbit全探索も判定も書けるようにしたい。 提出コード readl= lambda: list(map(int, sys.stdin.readline().split())) readt= lambda: tuple(map(int, sys.stdin.readline().split())…

AGC 033 A - Darker and Darker

問題概要 A - Darker and Darker H*W列内に".", "#"が存在する。 存在する#を起点に十字で.を#に置き換える。 上記を繰り返したときに、何回目で全てのマスが埋まるか答えよ。 解法 "."→"#"に置き換えたところをqueueに入れ、幅優先探索で置き換えていけば良…

ABC 113 D - Number of Amidakuji

問題概要 D - Number of Amidakuji あみだくじ。 0本目からスタートし、W本の長さH + 1までにを任意の線を引いた時 K本目にたどり着くパターンは何パターンあるか答えよ。 解法(解説AC) 現在の位置状態での線の引き方を全列挙し、DP(メモ化再帰)を用いて答え…

ABC 111 C - /\/\/\/

問題概要 C - /\/\/\/ 数列Aに対して、偶数列を任意の値a, 奇数列を任意の値bの2種類のみに置き換える時 最小で何か所置き換えれば条件を満たせるか答えよ。 ※ただし、値a, 値bは異なる値とする 解法 偶数列、奇数列から、それぞれ1番目に多い値(a1,b1)と2番…

Atcoder - いろはちゃんコンテスト Day1 - E - 放課後

問題概要 E - 放課後 解法 0 →Di → Di+1...Di+B→Nの間でどれだけAの区間が得られるか数えればよい。 数えた結果、Dに到達していれば0、Dに到達していなければ 必要なAの区間の個数が解となる。 提出コード typedef long long ll; typedef unsigned long long…

ABC 123 D - Cake 123

問題概要 D - Cake 123 X 種類、Y 種類、Z 種類の3つの種類に重みがついている。 3種類の組み合わせで重みの合計が高い順にK個出力せよ。 解法(解説AC) X, Y, Zをソートしておき、 Priority Queueへ最も高い重みの合計を放り込んでおく。 最も高い重みのi, j…

ABC 125 D - Flipping Signs

問題概要 D - Flipping SignsN個の数列Aに対して、任意(i 数列Bを作成する。作成したsum(数列B)が最大となる値を答えよ。 解法(解説AC) 正負判定を行い、負の値が偶数個の場合全て正の値にすることが可能。 負の数が奇数個の場合、任意の値を1つだけ負の値に…

ABC 125 C - GCD on Blackboard

問題概要 C - GCD on Blackboard N個の数列Ai, Ai+1, Ai+2...のうち、任意の1つのみの数値を0~10^9の任意の値に 置きかえた際に数列全体の最大公約数として考えられる最大値を求めよ 解法(解説AC) けんちょんさんの記事を参考にした。 AtCoder ABC 125 C - …