Решение:
Составим таблицу, где строки — ученицы, а столбцы — деревья. Отметим знаком «-» невозможность посадки, а знаком «+» — возможную посадку.
| Ученица | Березка | Тополь | Клен |
| Тополева | - | + | - |
| Березкина | - | - | + |
| Кленова | - | + | - |
Пояснения к заполнению таблицы:
- Тополева не сажала березку (не тополя).
- Березкина не сажала березку (не березкина).
- Кленова не сажала березку (не клёна).
- Из условия известно, что Кленова посадила не березку.
- Если Тополева сажала тополь, а Кленова сажала клен, то Березкина сажала березку. Но по условию Березкина не сажала березку.
- Попробуем иначе: если Тополева сажала тополь, то Березкина может сажать клен. Тогда Кленова сажала березку. Но по условию Кленова не сажала березку.
- Значит, Тополева сажала клен.
- Кленова не сажала березку и не сажала клен (так как его посадила Тополева), значит, Кленова сажала тополь.
- Остается Березкина, она сажала березку.
Проверим: Тополева - клен (не тополь), Березкина - березка (не березка), Кленова - тополь (не клен).
В условии ошибка: «Причем ни одна из них не посадила то дерево, от которого произошла ее фамилия» и «Кленова посадила не березку» противоречат друг другу, если Березкина сажала березку.
Переформулируем логику, исходя из более вероятного сценария:
- Тополева не сажала тополь.
- Березкина не сажала березку.
- Кленова не сажала клен.
- Кленова сажала не березку.
Таблица:
| Ученица | Березка | Тополь | Клен |
| Тополева | ? | - | + |
| Березкина | - | ? | ? |
| Кленова | - | + | - |
Выводы:
- Кленова сажала тополь (единственный вариант).
- Тополева не сажала тополь (дано), значит, она сажала клен (остался единственный вариант).
- Березкина сажала березку (остался единственный вариант).
Проверим: Тополева — клен (не тополь), Березкина — березка (не березка), Кленова — тополь (не клен).
Ответ: Тополева посадила клен, Березкина посадила березку, Кленова посадила тополь.