Перебор с отсечением(22 задач)
Простые задачи на перебор(43 задач)
Гамильтонов цикл(2 задач)
Андрюше на день рождения подарили хомячка. Пока Андрюша не купил для него клетку, он решил сделать ему клетку из подручных средств. Для изготовления клетки он решил использовать набор кубиков, подаренный ему на прошлый день рождения. Однако, неожиданно выяснилось, что сестра Андрюши склеила кубики суперклеем, и отделить их друг от друга не представляется возможным.
Все кубики оказались склеены в две фигуры. Любые два кубика в каждой из фигур либо не имеют общих точек, либо имеют общую грань, либо имеют общее ребро, но в последнем случае есть кубик, с которым каждый из них имеет общую грань. Каждую фигуру можно положить на стол так, что каждый кубик будет касаться стола одной из своих граней.
Теперь Андрюша хочет положить эти две фигуры на стол так, чтобы получилась клетка для хомячка. Фигуры должны быть положены таким образом, чтобы каждый кубик касался стола гранью. Стороны нижних граней кубиков должны быть параллельны сторонам стола. Любые два кубика, принадлежащие различным фигурам, должны либо не касаться друг друга, либо иметь общую грань, либо иметь общее ребро. Фигуры разрешается поворачивать и переворачивать.
В первой строке вводятся два числа: \(h_1\) и \(w_1\) (1 <= \(h_1\), \(w_1\) <= 10). Следующие \(h_1\) строк содержат по \(w_1\) символов и описывают первую фигуру, вид сверху. Каждый из этих символов - либо "*" (звездочка), либо "." (точка), звездочка обозначает кубик, а точка – пустое место.
Далее в отдельной строке вводятся два числа: \(h_2\) и \(w_2\) (1 <= \(h_2\), \(w_2\) <= 10). Следующие \(h_2\) строк содержат по \(w_2\) символов и описывают вторую фигуру в формате, аналогичном формату первой. Каждая из фигур связна и содержит хотя бы один кубик.
Выведите одно число – максимальную площадь, которая может быть доступна хомячку. Если сделать клетку для хомячка невозможно, выведите 0.
8 8 ........ .***.... ..**.... .*****.. ...*.*.. ...***.. ****.... ........ 8 8 ........ ........ ........ ........ *******. ........ ........ ........
4
Даны \(N\) целых чисел \(X_1\), \(X_2\), ..., \(X_N\). Расставить между ними знаки "+" и "-" так, чтобы значение получившегося выражения было равно заданному целому \(S\).
В первой строке находятся числа \(N\) и \(S\). В следующей строке - \(N\) чисел через пробел. 2 <= \(N\) <= 24, 0 <= \(X_i\) <= 50 000 000, -1 000 000 000 <= \(S\) <= 1 000 000 000.
Если получить требуемый результат невозможно, вывести "No solution", если можно, то вывести равенство. Если решение не единственное, вывести любое.
3 13 7 3 9
7-3+9=13
3 1 7 3 9
7+3-9=1
3 3 7 10 0
No solution
Дана строка, состоящая из \(M\) попарно различных символов. Вывести все перестановки символов данной строки.
В первой строке файла находится исходная строка. 2 <= \(M\) <= 8, символы - буквы латинского алфавита и цифры.
Вывести в каждой строке файла по одной перестановке. Перестановки можно выводить в любом порядке. Повторений и строк, не являющихся перестановками исходной, быть не должно.
AB
AB BA
0Az
0Az 0zA A0z Az0 z0A zA0
Дана строка, состоящая из \(M\) символов. Вывести все перестановки символов данной строки.
В первой строке файла находится исходная строка. 2 <= \(M\) <= 8, символы - буквы латинского алфавита и цифры.
Вывести в каждой строке файла по одной перестановке. Перестановки можно выводить в любом порядке. Повторений и строк, не являющихся перестановками исходной, быть не должно.
0z
0z z0
Вывести все представления натурального числа \(N\) суммой натуральных чисел. Перестановка слагаемых нового способа представления не даёт.
В первой строке находится единственное число \(N\). 2 <= \(N\) <= 40
В каждой строке выводится одно из представлений. В сумме слагаемые разделяются знаком "+".
2
1+1
6
1+5 1+1+4 1+1+1+3 1+1+1+1+2 1+1+1+1+1+1 1+1+2+2 1+2+3 2+4 2+2+2 3+3