Все задачи должны решаться при помощи рекурсивной функции.
По данному натуральному \(n\leqslant 10\) выведите все двоичные последовательности длины \(n\) в лексикографическом порядке.
Ввод | Вывод |
---|---|
3 |
0 0 0 |
По данным натуральным \(n\) и \(k\) (\(2\leqslant k \leqslant 10\)) выведите все последовательности длины \(n\), составленные из символов \(0, ..., k-1\) в лексикографическом порядке.
Ввод | Вывод |
---|---|
2 3 |
0 0 |
По данному натуральному \(n\leqslant 20\) выведите все двоичные последовательности длины \(n\), не содержащие двух единиц подряд, в лексикографическом порядке.
Ввод | Вывод |
---|---|
3 |
0 0 0 |
По данным натуральным \(n\) и \(k\) (\(0 \leqslant k \leqslant n\)) выведите все двоичные последовательности длины \(n\), содержащие не более \(k\) единиц в лексикографическом порядке.
Ввод | Вывод |
---|---|
4 2 |
0 0 0 0 |
По данным натуральным \(n\) и \(k\) (\(0\leqslant k \leqslant n\), \(n\geqslant 1\)) выведите все двоичные последовательности длины \(n\), содержащие ровно \(k\) единиц в лексикографическом порядке.
Ввод | Вывод |
---|---|
4 2 |
0 0 1 1 |
По данным натуральным \(n\) и \(k\) (\(0\leqslant k \leqslant n\), \(n \geqslant 1\)) выведите в лексикографическом порядке все двоичные строки длины \(n\) содержащие не более \(k\) единиц и не содержащие двух единиц подряд.
Ввод | Вывод |
---|---|
4 2 |
0 0 0 0 |
По данным натуральным \(n\) и \(k\) (\(0\leqslant k \leqslant \lceil\frac{n}{2}\rceil\), \(n \geqslant 1\)) выведите в лексикографическом порядке все двоичные строки длины \(n\) содержащие \(k\) единиц и не содержащие двух единиц подряд.
Ввод | Вывод |
---|---|
4 2 |
0 1 0 1 |
По данным натуральным \(n\) и \(k\) (\(n \leqslant k\)) выведите все возрастающие последовательности длины \(n\), состоящие из чисел \(1, ..., k\).
Ввод | Вывод |
---|---|
3 5 |
1 2 3 |
По данным натуральным \(n\) и \(k\) (\(n \leqslant k\)) выведите все убывающие последовательности длины \(n\), состоящие из чисел \(1, \ldots, k\) в обратном лексикографическом порядке.
Ввод | Вывод |
---|---|
3 5 |
5 4 3 |
Дано натуральное число \(n\). Выведите всевозможные его разбиения на слагаемые, упорядоченные в порядке невозрастания. Сами разбиения необходимо выводить в лексикографическом порядке.
Ввод | Вывод |
---|---|
5 |
1 1 1 1 1 |
Дано натуральное число \(n\). Выведите всевозможные его разбиения на слагаемые, упорядоченные в порядке неубывания. Сами разбиения необходимо выводить в лексикографическом порядке.
Ввод | Вывод |
---|---|
5 |
1 1 1 1 1 |
Даны натуральные числа \(n\) и \(k\) (\(1\leqslant k \leqslant n\)). Выведите всевозможные разбиения числа \(n\) на \(k\) слагаемых, упорядоченных в порядке невозрастания. Сами разбиения необходимо выводить в лексикографическом порядке.
Ввод | Вывод |
---|---|
8 3 |
3 3 2 |
Даны натуральные числа \(n\) и \(k\) (\(1\leqslant k \leqslant n\)). Выведите всевозможные разбиения числа \(n\) на \(k\) слагаемых, упорядоченных в порядке неубывания. Сами разбиения необходимо выводить в лексикографическом порядке.
Ввод | Вывод | ||
---|---|---|---|
8 3 |
1 1 6 |
Ввод | Вывод |
---|---|
3 |
1 2 3 |
Дано натуральное числo \(n\). Выведите все правильные скобочные последовательности, состоящие из \(n\) открывающихся круглых скобок и \(n\) закрывающихся скобок в лексикографическом порядке.
Ввод | Вывод |
---|---|
3 |
((())) |
Даны натуральные числа \(n\) и \(k\). Выведите все правильные скобочные последовательности, состоящие из \(n\) открывающихся круглых скобок и \(n\) закрывающихся скобок так, что максимальная вложенность не превосходит \(k\) в лексикографическом порядке.
Ввод | Вывод |
---|---|
4 2 |
(()()()) (()())() (())(()) (())()() ()(()()) ()(())() ()()(()) ()()()() |
Дано натуральное числo \(n\). Выведите все правильные скобочные последовательности, состоящие из \(n\) открывающихся скобок и \(n\) закрывающихся скобок в лексикографическом порядке. Используются круглые и квадратные скобки, их порядок следующий:
Ввод | Вывод |
---|---|
2 |
(()) |
Дано натуральное числo \(n\). Выведите k первых в лексикографическом порядке правильных скобочных последовательности, состоящих из \(n\) открывающихся скобок и \(n\) закрывающихся скобок в лексикографическом порядке. Используются круглые, квадратные и фигурные скобки. Лексикографичесчкий порядок для скобок задается в тестовых данных. Программа получает на вход число \(n\) - количество открывающихся скобочек в исходной последовательности, количество правильных скобочных последовательностей \(k\), которые необходимо вывести (\(n k \leqslant 10^6\)). Затем идет строка из 6 символов, являющаяся некоторой перестановкой строки "()[]{}", задающая лексикографический порядок.
Гарантируется, что существует \(k\) правильных последовательностей указанной длины.
Ввод | Вывод |
---|---|
3 10 |
[[[]]] |
Известно, что на шахматной доске размером 8×8 можно расставить 8 ферзей не бьющих друг друга, причем сделать это можно 92 способами.
Дано натуральное \(n\leqslant 10\). Определите сколькими способами на доске \(n\times n\) можно расставить n мирных ферзей.
Ввод | Вывод |
---|---|
8 |
92 |
Решите предыдущую задачу, если расстановки ферзей, которые можно получить друг из друга поворотами и отражениями доски считать за одно.
Ввод | Вывод |
---|---|
8 |
12 |
Решите задачу “Грузоподъёмность” в ограничениях \(n\le 23\). Используйте следующие оптимизации:
Формат входных данных отличается от формата данных в первой задаче. Программа получает на вход действительное число \(M\), затем количество ящиков \(n\le 23\), затем \(n\) действительных чисел: массы ящиков.
Программа должна вывести единственное число: максимальную массу, которую можно увезти на машине.
Ввод | Вывод |
---|---|
10 |
9.0 |
1073.15936137 |
1064.0876642465998 |
На плоскости даны \(n\) точек. Соедините их замкнутой ломаной линией минимальной длины.
Программа получает на вход число \(n\le10\). Далее идет \(n\) пар действительных чисел: координаты точек.
Выведите одно действительное число: минимальную длину замкнутой ломаной, проходящей через все эти точки. Ответ выводите с точностью в 15 знаков.
Ввод | Вывод |
---|---|
4 |
4.82842712474619 |
Решите задачу коммивояжёра в ограничениях \(n\le11\). Используйте следующую оптимизацию:
Решите задачу коммивояжёра в ограничениях \(n\le12\). Используйте следующую оптимизацию:
Головоломка “игра в пятнашки” состоит из 15 квадратиков, уложенные в рамку размером 4×4, при этом одно место остается незанятым. За один ход можно передвинуть один квадратик, соседний с незанятым местом, в незанятое место. Цель головоломки: упорядочить квадратики до такого положения:
1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 |
13 | 14 | 15 |
Вам дана некоторое начальное положение головоломки. Известно, что ее можно решить не более, чем за 20 ходов. Найдите решение этой головоломки.
Программа получает на вход 4 строки, содержащие по 4 числа: значения, записанные на квадратиках в начальном расположение. Число 0 соответствует пустой клетке.
Программа должна вывести последовательность перемещений, решающих головоломку
в виде строки из букв L
, R
, U
,
D
решающую головоломку, где буква L
соответствует движению
квадратика с числом влево, R
— вправо, U
— вверх,
D
— вниз.
Ввод | Вывод |
---|---|
1 2 3 4 | DLU |
В условиях предыдущей задачи найдите и выведите кратчайшее решение (т.е. решение содержащее наименьшее число перемещений). Гарантируется, что головоломку всегда можно решить не более чем за 20 перемещений.