ビット列を部分的に反転させたり、立っているビットを数えたりする問題。セグメント木などで解ける典型問題1だが、くらいなので、愚直シミュレーションをワードサイズ高速化しても十分間に合いそう。ANSI CLには十分な機能がないので、実装して通した。
その後でSBCLのソースを眺めていると、どうやらcountにはsimple-bit-vector用のトランスフォームが定義されているらしい。これなら自分の実装はいらなかったなと思ったが、コードをよく見ると、引数にstartとendがなく、ベクタ全体を数える場合にだけ適用されるdeftransformだった。範囲指定がある場合は通常通り1ビットずつ数えるので、まったく間に合わないようだ。
あと、logcountがpopcntになるのはバージョン1.2.8以降らしい。AtCoder以外のコンテストサイトのSBCLは確認できる限りすべて1.3.0以降なので、AtCoderのSBCLが新しくなれば考慮する必要がなくなりそう。