yhara.jp

Recent Posts

ARC062-E『AtCoDeerくんと立方体づくり』をRubyで

2018-03-05
Tech

会社のAtCoder会でARCのE問題をやったのだけど、解説を見て実装してもなかなか通らなくて大変だった。

「同じカードを複数の面に使うことはできない」という制約をうまく実装する方法がわからなくて、問題名で検索したところ、いくつか解説が見つかった。

方法はいくつかあるようだったが、使ったカードの一覧を持っておいて引くという実装が、簡単かつ速度も悪くなくて良さそうだった。

最終的なソースコードは以下。

usedというハッシュが上記の処理に相当する。上下の面も使用済みとしてカウントしないといけないのに注意。

速度チューニングはそんなにしてなくて、最後にhashnメソッドを書き直したくらい。このメソッドはかなりの回数呼ばれるので影響が大きい。Array#rotateを使わずべた書きすることで速くなった。

More posts

Posts

(more...)

Articles

(more...)

Category

Ads

About

About the author