Comments 8
Задачи оформмять в виде видео это какой-то здец.
Это неудобно по многим причинам, например «перечитывать» условие сложно, или к неоднозначности языка добавится неоднозначность произношения…
По поводу самой задачи — вот статья, которая отвечает на очень похожий вопрос: habrahabr.ru/post/187882/
Это неудобно по многим причинам, например «перечитывать» условие сложно, или к неоднозначности языка добавится неоднозначность произношения…
По поводу самой задачи — вот статья, которая отвечает на очень похожий вопрос: habrahabr.ru/post/187882/
Сама задача — если задача решена для строк/чисел длиной N, она решена для всех строк с меньшей длиной потому что все строки включают в себя строки меньшей длины.
Минимальная длина строки ответа будет 2^N + N — 1 потому что в строке должно быть как минимум 2^N подстрок длиной N.
2 — 01100. 3 — 1011100010. 4 — 0010111101001100001.
Это ответы с минимальной длиной, но, возможно, решение не уникальное.
Минимальная длина строки ответа будет 2^N + N — 1 потому что в строке должно быть как минимум 2^N подстрок длиной N.
2 — 01100. 3 — 1011100010. 4 — 0010111101001100001.
Это ответы с минимальной длиной, но, возможно, решение не уникальное.
Не уникальное. Хотя бы потому, что нули и единицы можно поменять местами, отобразить зеркально. Да и без этого решений несколько.
jsfiddle.net/FXMt3/1/ — жадный алгоритм нахождения строки в лоб.
Простите, не удержался от полного перебора 0:-)
От 18 и меньше вариантов не обнаружено, по всей видимости 19, — это потолок.
Возможно, кому-то пригодится для анализа.
Приведённые 128 вариантов — далеко не все.
Дополнительные случаи можно обнаружить, если
во-первых, развернуть каждую из строк на 1800;
во-вторых, все 0 заменить на 1 и наоборот;
в-третьих, можно сначала применить во-первых, а потом во-вторых.
После этих манипуляций будет много попадаться дубликатов из этих 128, но новых наборов там должно быть много.
От 18 и меньше вариантов не обнаружено, по всей видимости 19, — это потолок.
Возможно, кому-то пригодится для анализа.
От 68985 до 504455
6898510 = 00100001101011110012
6946510 = 00100001111010110012
7932910 = 00100110101111000012
8124910 = 00100111101011000012
8280910 = 00101000011011110012
8290510 = 00101000011110110012
8547310 = 00101001101111000012
8585710 = 00101001111011000012
9060110 = 00101100001111010012
9206510 = 00101100111101000012
9228110 = 00101101000011110012
9264110 = 00101101001111000012
9636110 = 00101111000011010012
9667310 = 00101111001101000012
9679310 = 00101111010000110012
9686510 = 00101111010011000012
9981710 = 00110000101111010012
10435310 = 00110010111101000012
10687310 = 00110100001011110012
10800110 = 00110100101111000012
11034510 = 00110101111000010012
11036910 = 00110101111001000012
11370510 = 00110111100001010012
11382510 = 00110111100101000012
12324110 = 00111100001011010012
12432110 = 00111100101101000012
12501710 = 00111101000010110012
12528110 = 00111101001011000012
12570510 = 00111101011000010012
12572910 = 00111101011001000012
12599310 = 00111101100001010012
12611310 = 00111101100101000012
19914710 = 01100001001111010112
19929110 = 01100001010011110112
19963510 = 01100001011110100112
20052310 = 01100001111010010112
20529110 = 01100100001111010112
20697110 = 01100101000011110112
20870710 = 01100101111010000112
21223510 = 01100111101000010112
21374710 = 01101000010111100112
21396310 = 01101000011110010112
21600310 = 01101001011110000112
21684310 = 01101001111000010112
22069110 = 01101011110000100112
22073910 = 01101011110010000112
22741110 = 01101111000010100112
22765110 = 01101111001010000112
24637910 = 01111000010011010112
24642710 = 01111000010100110112
24648310 = 01111000010110100112
24660310 = 01111000011010010112
24791510 = 01111001000011010112
24834710 = 01111001010000110112
24864310 = 01111001011010000112
24909910 = 01111001101000010112
25003510 = 01111010000101100112
25005910 = 01111010000110010112
25056310 = 01111010010110000112
25063510 = 01111010011000010112
25141110 = 01111010110000100112
25145910 = 01111010110010000112
25198710 = 01111011000010100112
25222710 = 01111011001010000112
33055710 = 10100001011001111012
33070110 = 10100001011110011012
33094110 = 10100001100101111012
33123710 = 10100001101111001012
33156510 = 10100001111001011012
33162110 = 10100001111011001012
33900510 = 10100101100001111012
33972510 = 10100101111000011012
34015710 = 10100110000101111012
34189310 = 10100110111100001012
34308510 = 10100111100001011012
34342910 = 10100111101100001012
35257310 = 10101100001001111012
35334110 = 10101100100001111012
35847710 = 10101111000010011012
35866910 = 10101111001000011012
36171710 = 10110000100111101012
36178910 = 10110000101001111012
36240510 = 10110000111101001012
36478910 = 10110010000111101012
36562910 = 10110010100001111012
36826110 = 10110011110100001012
36912510 = 10110100001111001012
37056510 = 10110100111100001012
38533310 = 10111100001001101012
38535710 = 10111100001010011012
38544510 = 10111100001101001012
38610110 = 10111100100001101012
38631710 = 10111100101000011012
38669310 = 10111100110100001012
38717310 = 10111101000011001012
38746110 = 10111101001100001012
46123110 = 11100001001101011112
46142310 = 11100001010011011112
46164710 = 11100001011010011112
46212710 = 11100001101001011112
46737510 = 11100100001101011112
46910310 = 11100101000011011112
47028710 = 11100101101000011112
47211110 = 11100110100001011112
47585510 = 11101000010110011112
47595110 = 11101000011001011112
47796710 = 11101001011000011112
47825510 = 11101001100001011112
48135910 = 11101011000010011112
48155110 = 11101011001000011112
48366310 = 11101100001010011112
48462310 = 11101100101000011112
49275910 = 11110000100110101112
49285510 = 11110000101001101112
49296710 = 11110000101101001112
49320710 = 11110000110100101112
49583110 = 11110010000110101112
49669510 = 11110010100001101112
49728710 = 11110010110100001112
49819910 = 11110011010000101112
50007110 = 11110100001011001112
50011910 = 11110100001100101112
50112710 = 11110100101100001112
50127110 = 11110100110000101112
50282310 = 11110101100001001112
50291910 = 11110101100100001112
50397510 = 11110110000101001112
50445510 = 11110110010100001112
6946510 = 00100001111010110012
7932910 = 00100110101111000012
8124910 = 00100111101011000012
8280910 = 00101000011011110012
8290510 = 00101000011110110012
8547310 = 00101001101111000012
8585710 = 00101001111011000012
9060110 = 00101100001111010012
9206510 = 00101100111101000012
9228110 = 00101101000011110012
9264110 = 00101101001111000012
9636110 = 00101111000011010012
9667310 = 00101111001101000012
9679310 = 00101111010000110012
9686510 = 00101111010011000012
9981710 = 00110000101111010012
10435310 = 00110010111101000012
10687310 = 00110100001011110012
10800110 = 00110100101111000012
11034510 = 00110101111000010012
11036910 = 00110101111001000012
11370510 = 00110111100001010012
11382510 = 00110111100101000012
12324110 = 00111100001011010012
12432110 = 00111100101101000012
12501710 = 00111101000010110012
12528110 = 00111101001011000012
12570510 = 00111101011000010012
12572910 = 00111101011001000012
12599310 = 00111101100001010012
12611310 = 00111101100101000012
19914710 = 01100001001111010112
19929110 = 01100001010011110112
19963510 = 01100001011110100112
20052310 = 01100001111010010112
20529110 = 01100100001111010112
20697110 = 01100101000011110112
20870710 = 01100101111010000112
21223510 = 01100111101000010112
21374710 = 01101000010111100112
21396310 = 01101000011110010112
21600310 = 01101001011110000112
21684310 = 01101001111000010112
22069110 = 01101011110000100112
22073910 = 01101011110010000112
22741110 = 01101111000010100112
22765110 = 01101111001010000112
24637910 = 01111000010011010112
24642710 = 01111000010100110112
24648310 = 01111000010110100112
24660310 = 01111000011010010112
24791510 = 01111001000011010112
24834710 = 01111001010000110112
24864310 = 01111001011010000112
24909910 = 01111001101000010112
25003510 = 01111010000101100112
25005910 = 01111010000110010112
25056310 = 01111010010110000112
25063510 = 01111010011000010112
25141110 = 01111010110000100112
25145910 = 01111010110010000112
25198710 = 01111011000010100112
25222710 = 01111011001010000112
33055710 = 10100001011001111012
33070110 = 10100001011110011012
33094110 = 10100001100101111012
33123710 = 10100001101111001012
33156510 = 10100001111001011012
33162110 = 10100001111011001012
33900510 = 10100101100001111012
33972510 = 10100101111000011012
34015710 = 10100110000101111012
34189310 = 10100110111100001012
34308510 = 10100111100001011012
34342910 = 10100111101100001012
35257310 = 10101100001001111012
35334110 = 10101100100001111012
35847710 = 10101111000010011012
35866910 = 10101111001000011012
36171710 = 10110000100111101012
36178910 = 10110000101001111012
36240510 = 10110000111101001012
36478910 = 10110010000111101012
36562910 = 10110010100001111012
36826110 = 10110011110100001012
36912510 = 10110100001111001012
37056510 = 10110100111100001012
38533310 = 10111100001001101012
38535710 = 10111100001010011012
38544510 = 10111100001101001012
38610110 = 10111100100001101012
38631710 = 10111100101000011012
38669310 = 10111100110100001012
38717310 = 10111101000011001012
38746110 = 10111101001100001012
46123110 = 11100001001101011112
46142310 = 11100001010011011112
46164710 = 11100001011010011112
46212710 = 11100001101001011112
46737510 = 11100100001101011112
46910310 = 11100101000011011112
47028710 = 11100101101000011112
47211110 = 11100110100001011112
47585510 = 11101000010110011112
47595110 = 11101000011001011112
47796710 = 11101001011000011112
47825510 = 11101001100001011112
48135910 = 11101011000010011112
48155110 = 11101011001000011112
48366310 = 11101100001010011112
48462310 = 11101100101000011112
49275910 = 11110000100110101112
49285510 = 11110000101001101112
49296710 = 11110000101101001112
49320710 = 11110000110100101112
49583110 = 11110010000110101112
49669510 = 11110010100001101112
49728710 = 11110010110100001112
49819910 = 11110011010000101112
50007110 = 11110100001011001112
50011910 = 11110100001100101112
50112710 = 11110100101100001112
50127110 = 11110100110000101112
50282310 = 11110101100001001112
50291910 = 11110101100100001112
50397510 = 11110110000101001112
50445510 = 11110110010100001112
Приведённые 128 вариантов — далеко не все.
Дополнительные случаи можно обнаружить, если
во-первых, развернуть каждую из строк на 1800;
во-вторых, все 0 заменить на 1 и наоборот;
в-третьих, можно сначала применить во-первых, а потом во-вторых.
После этих манипуляций будет много попадаться дубликатов из этих 128, но новых наборов там должно быть много.
Это же боян. Где только этой задачи не было. Решается через эйлеров цикл. Вершины — последовательности длины N-1. Ребра — последовательности длины N. Из каждой вершины выходят два ребра (получающихся дописыванием к последовательности 0 или 1 справа) и входят два ребра (приписываем 0 или 1 слева). Нужно найти цикл, который проходит через все ребра. Это делается стандартным способом.
Более того, в данном случае есть алгоритм, который просто идет по наименьшему неиспользованному ребру во всех случаях за исключением N+O(1) ребер (каких именно уже не помню).
Более того, в данном случае есть алгоритм, который просто идет по наименьшему неиспользованному ребру во всех случаях за исключением N+O(1) ребер (каких именно уже не помню).
Это последовательность де Брёйна
xakep.ru/2015/06/05/opensesame
xakep.ru/2015/06/05/opensesame
Sign up to leave a comment.
Задача о нахождении минимального домена, содержащего все заданные последовательности