hitoare日記

たまに書きます

Project Euler difficulty100% 難易度Tier表

現時点でProject Eulerの問題を全て解いているので、今回はdifficulty 100%の問題27個について解説をします。

ProjectEulerは101番以降の問題は原則解法の共有が禁止となっています。 解法の核心には触れないレベルでのコメントを添えてあります。

注意点

  • 完全主観
  • この辺の難易度だと実装はほぼ考慮しない
  • 類題があると気持ち低め
  • 「典型」と書いてあっても、あくまでEuler内で典型というだけであって他の場所ではあまり見ないテクニックだったりする
S+

#763 Amoebas in a 3D Grid - Project Euler

個人的には現時点でPE最強枠 シンプルな設定だけどどこから手を付ければいいのかから難しい 解としてありえるものの構造を考えることになるがかなり複雑

S

#499 St. Petersburg Lottery - Project Euler

正直評価が難しい 重要な性質があるのでそれを見抜けるか、もしくはエスパーするか

#585 Nested Square Roots - Project Euler

Eulerらしい問題 重複を取り除くのに苦戦した記憶

#597 Torpids - Project Euler

どの順で当たったらこの順になる…を整理するのが難しい、 それ以降はゴリ押しっぽいけどそれなりに数学する必要はある

#780 Toriangulations - Project Euler

solved数が異様に少ないけど個人的にはそこまでだと思ってる 条件を丁寧に1つずつ処理してサンプルに合わせる

#792 Too Many Twos - Project Euler

簡単そうに見えて難しい 二項係数関連は公式がありすぎて逆にどれを使えばわからなくなりがち 苦労して通した後にForumの一番上の解法を見て魂が抜けた

#798 Card Stacking Game - Project Euler

すみません完全に実験で通しました

#806 Nim on Towers of Hanoi - Project Euler

結構な量の考察が必要とされる 競プロ的な要素が結構ある問題でオススメ

#812 Dynamical Polynomials - Project Euler

数学パズル好きには刺さる問題だと思う

A

#450 Hypocycloid and Lattice Points - Project Euler

いかつい式が出てきてもきちんと式変形で条件を整理するのが重要

#459 Flipping Game - Project Euler

人によってはC以下かも

#478 Mixtures - Project Euler

(1:1:1)を作れる条件を整理するとよく見る形に

#489 Common Factors Between Two Sequences - Project Euler

計算できる形に式変形する 制約は小さいので甘えよう

#494 Collatz Prefix Families - Project Euler

方針さえ引き当ててしまえば後はやるだけ というかそうでないと困る

#566 Cake Icing Puzzle - Project Euler

「こういう形で求めれたらいいな」的な雰囲気が出つつも計算量を落とすのは工夫がいる 実装はほぼ考慮しないとはいいつつこれは難しかった

#579 Lattice Points in Lattice Cubes - Project Euler

一応それぞれの要素は典型だから地力枠っぽいけど面倒そうな部分が実は全探索でよかったり 最後の最後に一捻りあったりで翻弄される

B

#344 Silver Dollar Game - Project Euler

この手のはまず実験 ただ実験だけで必要十分条件にたどり着くのは難しいのでちゃんと考察も必要

#415 Titanic Sets - Project Euler

典型枠 典型に帰着するまでがちょっと工夫がいる

#439 Sum of Sum of Divisors - Project Euler

これも典型だけど他に比べて1段複雑なのでこの位置に置いた

#502 Counting Castles - Project Euler

ゴリ押しゲーはゴリ押しできると気付くのが難しい 求める値が3つあるが大した問題ではない

#584 Birthday Problem Revisited - Project Euler

典型っぽく見えて雑にやるとオーダー増える 一応PCぶん回しを考慮するとC

#696 Mahjong - Project Euler

発想の似た問題がAtCoderにあるがそのままではないのでこの位置 素で思いつくのは少しむずかしい

C

#331 Cross Flips - Project Euler

着実に考察する

#483 Repeated Permutation - Project Euler

テクニックとしてはかなり面白いと思うけど露骨な類題があるので…

#484 Arithmetic Derivative - Project Euler

典型枠で実装も軽い PCが壊れたときに解法が思いついたのでネカフェで実装して提出した思い出がある 100%最易かも

#495 Writing $n$ as the Product of $k$ Distinct Positive Integers - Project Euler

完全に典型枠になってしまった感じではある

#559 Permuted Matrices - Project Euler

競プロ的にはこれも典型か

総評

この表を作って改めて100%の問題を全部見た感想

  • 763が考察の質・量で頭一つ抜けてる。763と780は(約2年を要して)solved数が最近ようやく100を超えたけど、763は純粋な難しさ由来としても780は考察すら諦めた人がほとんどじゃないかと思う。ただ解法を導くのはそこまで難しくなく、過大評価気味
  • 400番台前半は今では(Eulerで)ド典型になっているやつもあって過大評価気味
  • 494,566とかは他所でまず見れなさそうな問題で凄い
  • 700番台以降とかは難易度は高いけど、ARCとか大学有志コンのボスとかでギリ出そうではある
  • 「式変形してしまえばあっさり」的な問題が多く、やはり問題の見た目で惑わされずにしっかり手計算で考察することが一番重要