金魚亭日常

読書,ガジェット,競技プログラミング

Code Festival 2017 予選 C

CODE FESTIVAL 2017 qual C - CODE FESTIVAL 2017 qual C | AtCoder

A

文字列を2個ずつ処理. 今回は Array にして each_cons() を使った.

B

差が1以下なので,とれる範囲は元の数字とその前後の3通り. 一つでも偶数のものがあればいいので,全通りの  3^N から全て奇数のものを引く.

元の数字が偶数なら前後は奇数になるので 2通り,元の数字が奇数なら前後は偶数になるので1通り.

なので,奇数が m 個あるとすると  2^m を引く.

C

最初は,

x を除いた文字列が回文じゃなかったら "No",回文だったら,真ん中の文字の位置がとれるので ... みたいな感じで考えていて,無理だった.

普通に両サイドから判定して行く.

Code Festival 2017 予選 C

AtCoder ARC #043 B - 最短路問題

B: 最短路問題 - AtCoder Regular Contest 044 | AtCoder

距離が同じもの同士は,ペアの選び方が  {}_nC_2 なので,  2^{{}_nC_2} 通り

距離  i から  i+1 は ,距離  i+1 のそれぞれから 距離  i のそれぞれについてつなぐ・つながない 二通りあって,全部つながないというのを除くので,

距離  i t 通り,距離  i+1 s 通りあるとすると,  (2^t - 1)^s 通り

Rubyで書いていて,2乗 の範囲を間違っていてREになってずっと考えていた.

Python は pow があって楽だった.

AtCoder ARC #044 B - 最短路問題

AtCoder ARC #043 B - 最短路問題

AtCoder ARC #042 B - アリの高橋くん

頂点の座標が  O(0, 0), A(a, b), B(c, d) の三角形の面積  S

 \displaystyle S = \frac{|ad - bc|}{2}

(サラスの公式)

なので,点を原点まで平行移動した後,面積を求めて, 2 S を底辺の長さで割ると辺までの距離が出る.

AtCoder ARC #042 B - アリの高橋くん