Жеребцов надо разместить в конюшнях. В первой коню...
作成日: 2025年12月24日
使用モデル GPT-5.2 Thinking by Chat01
作成日: 2025年12月24日
使用モデル GPT-5.2 Thinking by Chat01
Жеребцов надо разместить в конюшнях. В первой конюшне в ряд располагаются 16 стойл (стойло − огороженное место для одной лошади). Но жеребцов нельзя помещать в соседние стойла. Первого жеребца помещают в любое стойло из 16, второго − в любое стойло, не соседнее с первым, третьего − в любое стойло, не соседнее с первым и вторым, и так далее, пока это возможно. Переводить жеребцов, уже помещённых в стойла, нельзя. Стойла пронумерованы от 1 до 16. Сколько возможно различных наборов номеров занятых стойл в первой конюшне?
pythondef f(n): dp={0:1,1:1,2:2,3:2} # define f(0)=1 for recurrence convenience for k in range(4,n+1): dp[k]=dp[k-2]+dp[k-3] return dp[n], dp f16, dp=f(16) f16, dp (86, {0: 1, 1: 1, 2: 2, 3: 2, 4: 3, 5: 4, 6: 5, 7: 7, 8: 9, 9: 12, 10: 16, 11: 21, 12: 28, 13: 37, 14: 49, 15: 65, 16: 86})
pythondef is_independent(S): S=set(S) for v in S: if v-1 in S or v+1 in S: return False return True def is_maximal(S,n): S=set(S) if not is_independent(S): return False for v in range(1,n+1): if v not in S: # can we add v? if (v-1 not in S) and (v+1 not in S): return False return True def brute_count(n): cnt=0 for mask in range(1<<n): S=[i+1 for i in range(n) if mask>>i &1] if is_maximal(S,n): cnt+=1 return cnt for n in range(1,11): print(n, brute_count(n)) print("n=16", brute_count(16))
Итоговый набор занятых стойл после остановки процесса — это максимальное (по включению) множество номеров без соседних: добавить ещё одно стойло уже нельзя.
Обозначим через число таких возможных итоговых наборов для ряда из стойл.
Рассмотрим стойло 1.
Получаем рекурсию:
Базы:
Дальше считаем:
Ответ: различных наборов номеров занятых стойл.
Подряд растут 11 деревьев: кедр, сосна, кедр, 7 сосен, кедр. На втором кедре сидят 2 бельчонка, а на любых трёх соседних деревьях сидят вместе 12 бельчат. Сколько бельчат сидит на первом и последнем кедрах вместе?
Обозначим через число бельчат на -м дереве ().
Дано: на любых трёх соседних деревьях вместе 12 бельчат, то есть для
и на втором кедре (это 3-е дерево) .
Вычтем два соседних равенства:
Значит, последовательность периодична с периодом 3:
Из получаем и .
Теперь используем сумму для первых трёх деревьев:
Первый кедр — это дерево 1 (), последний кедр — дерево 11, а .
Значит, на первом и последнем кедрах вместе:
Ответ: 10.
Площадка имеет форму квадрата ABCD, сторона квадрата равна 8 метрам. В вершине A сидит бельчонок. Он бежит к стороне BC (любым путём). Достигнув сторону BC в некоторой точке M (M∈BC), бельчонок замечает, что на стороне CD лежит шишка, на расстоянии четверти стороны от точки D. Бельчонок бежит к этой шишке. Найдите наименьшую возможную длину пути, пройденного бельчонком от точки A до шишки. В ответ запишите квадрат полученной величины.
Расположим квадрат на координатной плоскости: .
Шишка лежит на на расстоянии от , значит её точка .
Бельчонок бежит из к стороне в точку , затем из к . Кратчайший путь при фиксированном — это ломаная , и нужно минимизировать по (где — прямая ).
Отразим точку относительно прямой . Получим (потому что на левее , значит станет на правее: ).
Тогда для любой точки на прямой :
а значит минимизация равносильна минимизации , которая достигается на прямой (по принципу отражения), если точка пересечения с попадает на отрезок .
Проверим: прямая через и имеет вид . При получаем , значит всё корректно.
Тогда минимальная длина пути равна :
Требуется квадрат длины, значит ответ: 260.