История изменений
Исправление ya-betmen, (текущая версия) :
По сути оптимизация перебора.
Если я правильно понял то есть 2 операции (a и b), каждая из них рождает перестановку строки. Требуется найти цепочку перестановок S0 в Sn.
- Создаём множество перестановок {S0} (пока там только одна перестановка S0) и пустое пока множество {U}
- Применяем ко всем элементам множества {S0} операции a и b, результатом становится множество {S1}
- Если среди элементов {S1} есть Sn значит цепочка операций найдена (порядок операций естественно нужно хранить). Всё.
- Считаем число элементов {U}
- Добавляем {S1} в {U}
- Считаем число элементов {U}, если оно не изменилось - задача не имеет решения. Всё
- Повторяем начиная с п2 для {S1}
Лень вникать в условия задачи, это первый способ который пришёл в голову.
Исходная версия ya-betmen, :
По сути оптимизация перебора.
Если я правильно понял то есть 2 операции (a и b), каждая из них рождает перестановку строки. Требуется найти цепочку перестановок S0 в Sn.
- Создаём множество перестановок {S0} (пока там только одна перестановка S0) и пустое пока множество {U}
- Применяем ко всем элементам множества {S0} операции a и b, результатом становится множество {S1}
- Если среди элементов {S1} есть Sn значит цепочка операций найдена (порядок операций естественно нужно хранить). Всё.
- Считаем число элементов {U}
- Добавляем {S1} в {U}
- Считаем число элементов {U}, если оно не изменилось - задача не имеет решения. Всё
- Повторяем начиная с п2 для {S1}