文系プログラマーのプログラミング備忘録

Java、競プロ、数学などについて書いてます

AtCoder-300

こだわり者いろはちゃん / Iroha's Obsession [AtCoder Beginner Contest 042 C]

atcoder.jp N と K個の数字(D1,D2......Dk)が与えられる。N以上の数字で、D1,D2......Dk を含まない最小のものを出力せよ。 愚直(あまりこの言葉は好きではないのですが)に全探索できるかどうかを考えてみます。 最大の N は 10000 です。このとき答えが最…

Lining Up [AtCoder Beginner Contest 050 C]

atcoder.jp 「自分の左に並んでいた人数と自分の右に並んでいた人数の差の絶対値」の配列は、並んでいる人数が決まれば一意に定まります。例えば、人数が10人なら、 ・9,7,5,3,1,1,3,5,7,9 となります。1番目の人の左には0人、右には9人いますから、差の絶対…

白昼夢 / Daydream [AtCoder Beginner Contest 049 C]

atcoder.jp 解説には「逆順にすると接頭辞が云々~」と書いてありますが、逆順にしなくても上手くいくみたいです。以下のコードがACコードになります。 import java.util.*; class Main { static Scanner sc = new Scanner(System.in); public static void m…

Digits in Multiplication [AtCoder Beginner Contest 057 C]

atcoder.jp 整数Nが与えられる。N=A*B と表せるような A,B のうち、桁数の大きいほうを F とする。Fのうち最小のものを出力せよ。という問題です。 Nが小さければ、1からNまで順番に調べていって、ある数 X が N の約数になっていれば、X と N/X を比較して…

Monsters Battle Royale [AtCoder Beginner Contest 118 C]

atcoder.jp 相手を殴ったとき、自分の体力と同じだけ相手の体力を減らせるという設定のもと、体力 A を初期値として持つ n 体のモンスターたちが殴り合いをしたとき、最後に生き残ったモンスターの体力の最小値として考えられるものを出力せよ、という問題で…

Streamline [AtCoder Beginner Contest 117 C]

atcoder.jp しばらく考えたのち、座標と座標の間隔を広いほうからn-1個調べ上げることで、それをもとに各コマが移動する区間を決められるのではないか、と発想しました。最初に断っておきますと、大変回りくどいやり方で解いています。スマートな解答は後ほ…

Grand Garden [AtCoder Beginner Contest 116 C]

atcoder.jp スマートに実装できなさそうだったので、他の方の解説を参考にしました。 では、例のごとく問題を単純化して考えてみます。 ①数列が与えられる ②数列から連続した区間を一つ選択し、その区間に含まれる全ての項から1を引く ③数列の全ての項を0に…