549=592 です。

> 俺(=553)が書いたのは564の方法そのものなんだけど、

はい、実はあのコードだいたい分かったのですがわたしは C++ ユーザじゃないので
ちょっとその・・・。失礼しました、ありがとうございました。

あとは、おっしゃってる意味は分かります。該当エントリに無い場合はどうするか、
あっても、最短エントリがそこにあるとは限らない、っていうことは理解できます。

今回は、なるべく単純にしたので、無い場合は256回にしてしまいました。

区画を細分化すると、エントリが無い場合が多くなり、今回の方法では時間がかかり
ます。逆に大雑把にしていくと、単純巡回に近づいてやはりスピードダウンします。
今回のような方法では、パレットエントリの数と区画の数がコンパラな場合が具合
いいだろう、とだいたい予想がつきますよね。

あっても無くても周囲を見るならはじめから周囲を含む区画にしておく、というのは
ちょっと考えただけでも等価じゃないですね。

あと、パレットエントリを決定する色の量子化がかなりよいものだと、今回の画像1の
ような場合は、RGB三次元空間の中でパレットエントリがかなり局在化します。あらかじめ
格子点の最短距離をもとめておくのはなんか無駄なような気がしていますが、どうなんでしょうか。

失礼しました。もうすこし周囲の区画を見ることをやってみます。