わかった、std::mapだとダメなんだな
bitsetがoperator<持ってないからだ
これ定義すればmapでも通ると思うよ

template<>
struct std::less<std::bitset<100>>
{
bool operator()(const std::bitset<100>& lhs, const std::bitset<100>& rhs) const{ return lhs.to_ulong() < rhs.to_ulong();}
};