この問題は,与えられた問題(百ます計算の逆問題)の解が一意であるかどうかを 判定する問題である.
問題の入力サイズが小さいことから,解答マスの数をもとに,上端・左端の数を一つずつ決定していくような単純なアルゴリズムによっても解くことができる. 例えば,単純なアルゴリズムの一つは, 解答マスの数によって新しく上端・左端を決定するというステップを, 最大 w + h − 1 ステップ行うというものだ. このアルゴリズムの計算量は O((w + h)2) である.
実はこの問題では, 問題として与えられるパズルが解を少なくとも一つ持つことが保証されているので, 解答マスの数の位置だけが必要で,値は必要ではない. このことに気付くと,多少コードを短くすることができる.
なお,この問題はより小さな計算量で解くことができる. 以下のようなグラフを考える.上端の数と左端の数をそれぞれノードとする. それぞれの解答マスの数に対し,その上端ノードと左端ノードを辺で結ぶ. すると,ノード数 w + h,エッジ数 w + h − 1 のグラフとなる. このグラフが木であれば,解が一意となる. グラフが木であるかどうかを判定することは頂点数のオーダーで可能なので,この方法であれば計算量は O(w + h) となる.