プログラミングコンテスト

PE37

コロナによる外出自粛で暇だったので、 Problem 37(日本語訳)に取り組む。 ハマるかなと思っていたが、Pythonで書いたので、問題文をそのままコードに落としたような実装で解くことができた。 特にここで書くようなメモもないかな。 それにしても、Pythonの…

PE36

Problem 36(日本語訳)がすんなり解けた。嬉しい。 例によってPythonで文字列操作ゴリ押ししようかと思ったが、 ビット列を正しく生成する形でやるのが正攻法のような気がしたので取り組んでみた。 実際、この方法だと高速なので、1兆くらいまでであれば割と…

PE35

しばらく考えていたけど効率的な方法が思いつかず、適当に素数と巡回数(?)を作ってぶつける方法であっさり解けてしまった。 今回はスマホだけで全部書いてうまくいった。 Pythonで書くと、こういった雑な感じで作るときに楽にできるので有り難い。 1問ず…

PE34

どうもお久しぶりです。 1年半近く(!)かかって、ようやくProblem 34を解けたので記念真紀子。 できるだけ連続した番号の問題を解いていこうと考えていたが、 どうにも解法がわからんので、諦めてProblem 38に挑戦。PE38 - BPM Memo こんな事も書いてまし…

PE38

できるだけ連続した番号の問題を解いていこうと考えていたが、 どうにも解法がわからんので、諦めてProblem 38に挑戦。電車の中でPythonでなんとなく書いて回してみるまでは良かったが、 すごい時間がかかるし熱いしバッテリーがガンガン減る。 1分ルールを…

PE33

組み合わせ総数は大したことないが、 精度不足で正解を出せないんじゃないかな、と考えたりしていたせいで 変な実装して全然走らせられなかったが、 頭を冷やして(寝ぼけていた状態で)愚直に実装し、あっさりと正解できた。

PE32

今回は計算量削減でかなり頭を抱えた。 愚直に回したのでは、超ハイパーウルトラアルティメットPCを組まない限り、 通常のPCでは終わらないようなとてつもない数の組み合わせを 試さなければならない。寝起きにボーッとしていたらふと気がついた。 1~9の数…

PE31

力任せにループさせてカウントし、解いた。

PE30

どう当たりをつけて良いか分からなかったので、 95あたりを最大として試しながら探索するよう実装した。 この当たりのつけ方で良かったのかどうかは謎。 (そもそも当たりをつけるタイプの問題であるのかどうかも…)

PE29

28に続き、力任せに集合に放り込んで解いた。 Pythonでは数行の実装で非常に簡単だったのだが、 C++で書こうとしたときに多倍長整数のような実装をしなければならず、 自力実装を諦め、boost::multiprecision を利用して実装した。 std::unordered_set<boost::multiprecision::cpp_int> にう</boost::multiprecision::cpp_int>…

PE28

番号順に解いていこうとしたが、26と27の解法がわからず飛ばすことにした。 (先が思いやられる。。。) 今回解いた28は、見たままの通りにマトリックス構造を作って力任せにやって解けた。 これ以外の方法もありそうだが思いつかない。

PE最初の25問を終えて

2年前くらいに、あるきっかけでProject Eulerにアカウントを作成した。 このブログもその頃作ったと思う。(たぶん) 最初の5問も解いたか解かないかくらいでつまずいてどちらも放置していたが、 ここ数日少し頑張って解いていたところ、今日最初の25問+αま…