AtCoder Beginner Contest 008

はい。
AtCoder Beginner Contest 008
C問題満点とD問題は難易度おかしいのでまた今度。今日は頭痛いので。

A - アルバム

差分。

B - 投票

mapで数えました。文字列を全部vectorに突っ込んでからソートして先頭から見て同じのが連続とかでも数えられないことはないのかも。やりませんけど。

C - コイン

それに対して約数が何個あるかに注目する。約数が奇数個あるときはそれの配置される箇所が偶数箇所ある。_約数_約数_約数_みたいな感じ。 偶数箇所あって操作の最終結果の姿は左から表裏表裏...になる。最左のときは初期配置の表のままでそれが裏返されないため。以降は1つずつずれるごとに裏表裏...になる。なのでそれに対して約数の個数が奇数個のときは表の期待値が1/2で0.5となる。
それに対して約数が偶数個あるときは配置箇所が奇数箇所。_約数_約数_約数_約数_みたいな感じ。表裏表...となる。偶数は解説と違う式でACになって困ってる。
((cnt/2+1)*1.0)/(1.0*cnt+1.0) 分子の ((cnt/2+1)*1.0) は配置箇所の奇数個に対して表裏表...になるので。 分母の (1.0*cnt+1.0) は(偶数じゃなくても)約数がある個数の+1が配置箇所。それで期待値が求められるかなーでAC。いまいち証明しきれてない気がするので嘘解法かどうか自信なし。