а) Обозначим сумму длин отрезков, составляющих множество $M$, через $S$. Сдвинем множество $M\subset[0;1]$ вправо на расстояние $0{,}1$. Полученное множество $N$ не имеет общих точек с $M$, поскольку в $M$ нет двух точек на расстоянии $0{,}1$. Но оба конгруэнтных множества $M$ и $N$ помещаются на отрезке $[0;1{,}1]$ длины $1{,}1$. Таким образом, $2S\lt1{,}1$, откуда $S\lt0{,}55$.
б) Разобьём отрезок $[0{;}1]$ на десять одинаковых отрезков $A_0A_1$, $A_1A_2$, $\ldots$, $A_9A_{10}$. Расположим эти отрезки один над другим, как на рисунке 1, после чего спроектируем все отрезки на самый нижний отрезок $A_0A_1$. Докажем, что в любую точку отрезка $A_0A_1$ спроектируется не более пяти точек из множества $M$. В самом деле, если некоторая вертикальная прямая пересекает не менее шести отрезков, принадлежащих $M$, то найдутся два соседних отрезка $A_iA_{i+1}$ и $A_{i+1}A_{i+2}$, пересекающихся с этой прямой в точках, принадлежащих множеству $M$ (рис. 2). На отрезке $[0;1]$ расстояние между этими точками будет равно $0{,}1$ (рис. 3), что противоречит условию. Поэтому в каждую точку отрезка $A_1A_2$ длины $0{,}1$ проектируется не более пяти точек из множества $M$. Из этого сразу следует, что суммарная длина отрезков, составляющих множество $M$, меньше $0{,}1\cdot5=0{,}5$.