AtCoder Beginner Contest 108
AtCoder Beginner Contest 108 に飛び入り参加しました。 結果はA,Bの2完でした。難しかったですね...
A Pair
最初にK以下の整数を偶数と奇数に分割します。 例えば K = 6 のとき、
偶数: 2, 4, 6 奇数: 1, 3, 5
となります。
求めるのは「偶数と奇数ひとつずつの組」なので、答えは (偶数の個数) * (奇数の個数) になります。
sample code :
Submission #3113127 - AtCoder Beginner Contest 108
B Ruined Square
座標の回転の問題です。 様々な解法が考えられますが、今回は計算を簡単にするために複素数とベクトルを使って残りの座標を計算します。
まず、与えられた が以下の図のようだったとします。
点は反時計回りに打つので、残りは図のようになります。
このとき、 は を を中心に 回転させたものになっています。
これを踏まえ、複素平面を利用して を 回転させます。
その前準備として、各点を と複素数に対応させます。
複素平面で 回転させるのは, 点に を掛けるのと同義です。
(なぜそうなるかは, 複素平面 - Wikipediaなどをご覧ください。)
よって、以下の等式が成り立ちます。
これを展開すると、
となります。従って、
と求められました。
同様に、 は を を中心に 回転させたものになっています。
これも計算すると、
と求めることができます。
sample code:
Submission #3126302 - AtCoder Beginner Contest 108
※この問題を解くに当たって多大なヒントを頂きました。 ⚡すく⚡さん、 ありがとうございました。
こんな感じに考えました pic.twitter.com/R7Dusi2rWN
— ⚡すく⚡ (@0214sh7) September 2, 2018
Cは後で書きます><