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

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

AtCoder-200

Ruined Square [AtCoder Beginner Contest 108 B]

atcoder.jp 正方形の4つの頂点座標のうち、連続した反時計周りの2点が与えられるので、残りの2点を復元せよという問題です。 解説を読んでも全く理解できません。それもそのはず、まともに解こうとしたら回転行列の考え方が必要らしく、回転行列どころか、行…

fLIP [CODE FESTIVAL 2017 予選A - B]

atcoder.jp 解説にある「ボタンを押す順序は関係なく、また、各行/列に対して 2 回以上ボタンを押す必要はありません」という部分がイマイチよくわからなかったので、記事を書いて理解を深めることにしました。 といっても、その疑問は以下のような図を描い…

Thumbnail [第5回 ドワンゴからの挑戦状 予選 A]

atcoder.jp ①長さ n の数列が与えられる。この数列の各項には 0,1,2,3,4......n-1 の番号が付けられている ②数列の平均値に最も近い項の、その番号を出力せよ。 解説に「a の平均値を X とします。X は整数となるとは限りませんが、NX は平均値の定義より必…

Similar Arrays [CODE FESTIVAL 2017 予選C - B]

atcoder.jp ①長さnの整数列A [A1,A2,A3......An] が与えられる。 ②整数列Aの各項に [-1,0,1] から1つ選んで加算していき、整数列Bを作る。 ③全ての項の積が偶数となるような整数列Bの作り方は、何通りあるか? 全ての項の積が偶数となるような整数列Bとは、…

Go Home [AtCoder Beginner Contest 056 C]

atcoder.jp ①数直線上の0の地点にカンガルーがいる。 ②カンガルーは時刻iのとき、負もしくは正の方向へiだけ移動できる。 ③カンガルーが座標xに到着する時刻の最小値を求めよ。 x=16のときを考えてみます。 カンガルーは時刻5以内にxに到着することができま…

ステップカット [DISCO presents ディスカバリーチャンネル コードコンテスト2016 予選 B]

atcoder.jp 問題文の理解にずいぶん時間がかかってしまいました。ではその問題文を整理してみたいと思います。 ①半径Rの円を縦にN等分することを考える。 ②その際、N-1本の切断線ができるはずである。これをカットラインと呼ぶ。 ・カットラインに、上から1,…

Two Colors Card Game [AtCoder Beginner Contest 091 B]

atcoder.jp まず問題を整理します。 ・青いカードがn枚、赤いカードがm枚ある ・好きな文字列を一つ選ぶ ・選んだ文字列が書かれている青いカードは何枚あるか数える。1枚につき1円を得る ・同様に、選んだ文字列が書かれている赤いカードは何枚あるか数える…

Checkpoints [AtCoder Beginner Contest 057 B]

atcoder.jp 学生の座標n個とチェックポイントの座標m個が与えられ、それぞれの学生をマンハッタン距離で最短のチェックポイントに移動させるときの、そのチェックポイントの番号を出力せよ、という問題です。 200点にしてはずいぶんいやらしい問題……というわ…

Collatz Problem [AtCoder Beginner Contest 116 B]

atcoder.jp 問題文がわかりづらいので整理します。 ①初項sが与えられる ②第n項を、第n-1項(Aとする)が偶数ならばA/2、奇数ならば3*A+1として求めていく ③このようにして項を順に求めていったとき、最初に要素の重複が起こるのは第何項か というふうに単純…