Задача A. Идея Igorbunov
У нас могут быть только следующие пары чисел $$$(x, x)$$$, $$$(x, 2 \cdot x)$$$, $$$(x, 3 \cdot x)$$$
Давайте заметим, что у нас могут быть только следующие пары чисел: $$$(x, x)$$$, $$$(x, 2 \cdot x)$$$, $$$(x, 3 \cdot x)$$$.
Пусть $$$d = gcd(a, b)$$$, тогда заметим, что не может быть $$$a = k \cdot d$$$, где $$$k > 4$$$, так как иначе $$$lcm$$$ точно будет не меньше $$$k \cdot d > 3 \cdot d$$$. Тогда остается только варианты выше, а также $$$(2 \cdot d, 3 \cdot d)$$$. Но в этом случае $$$lcm = 6 \cdot d$$$.
Количество первого типа $$$n$$$, второго $$$2 \cdot \lfloor \frac{n}{2} \rfloor$$$, третьего $$$2 \cdot \lfloor \frac{n}{3} \rfloor$$$. А значит, ответ на задачу равен $$$n + 2 \cdot \left( \lfloor \frac{n}{2} \rfloor + \lfloor \frac{n}{3} \rfloor \right)$$$.
Задача B. Идея FairyWinx
Решите эту задачу для $$$k = 2$$$.
Решите задачу, когда нет ограничения на закрашенную клетку.
Попытайтесь закрашивать клетки по диагоналям.
Если в вашем коде много строчек не пишите)
Давайте заметим, что ответ на задачу не меньше $$$\frac{n^2}{k}$$$, так как квадрат можно разбить на непересекающиеся подпрямоугольники размера $$$1 \times k$$$. Значит нужно научиться делать пример на это число.
Решим вначале задачу, без ограничения на закрашенную клетку. Тогда нам хочется сделать что-то типа шахматной расскраски, то есть диаганальную раскраску.
В этом случае, мы можем пронумеравать диаганали (от самой "нижней", до самой "верхней"). В этом случае в каждом подпрямоугольнике будет $$$k$$$ подряд идущих диагоналей, а значит, если закрасить каждую $$$k$$$ диаганаль, то мы получим ответ на задачу (и ответ в точности будет равен $$$\frac{n^2}{k}$$$, так как в каждом подпрямоугольнике мы закрасили ровно одну клетку).
Ну а можно заметить, что клетка $$$(x, y)$$$ принадлежит диагонале с номером $$$x + y$$$. (Так как когда мы идем на одну клетку вверх-влево, то одна из координат увеличивается на 1, а другая не меняется). А значит, нужно просто закрасить все клетки, у которых $$$(x + y) \% k = (a + b) \% k$$$
Задача C. Идея FairyWinx
Если $$$b_{i} > b_{i + 1} + 1$$$, то могут быть проблемы
Все нормально, если $$$a_i = b_i$$$
Программист не математик, можно не доказывать решение.
Очевидно, что для любого $$$i$$$ должно выполняться, что либо $$$a_i = b_i$$$, либо $$$b_i \leq b_{i + 1} + 1$$$, так как либо $$$a_i$$$ уже равно $$$b_i$$$ и $$$i$$$ элемент увеличивать не нужно, либо же мы должны увеличить $$$a_i$$$ до $$$b_i$$$ операциями из условия, а на них накладываются ограничения выше.
Теперь докажем, что этих двух условий достаточно. Пусть $$$i$$$ — это индекс минимального элемента в $$$a$$$, который не равен $$$b_i$$$. Тогда заметим, что мы в любом случае сможем сделать $$$a_i := a_i+1$$$, так как в этом случае выполняется $$$a_i \leq b_i \leq b_{i + 1} + 1$$$, а значит можно увеличить $$$a_i$$$. То есть такими операциями можно получить массив $$$b$$$.
Задача D. Идея FairyWinx
Переформулируйте чуть лучше задачу в терминах полного бинарного дерева.
Странно на одной и той же глубине делать два изменения.
Давайте поймем, что задачу можно переформулировать следующим образом: Дано полное бинарное дерево с $$$2^n$$$ листами. Также для каждой вершины, не являющейся листом, помечено ребро в ровно одного из детей. А ответ на задачу — это лист, до которого можно добраться из корня по отмеченным ребрам. А изменения — это сменить помеченное ребро выходящее из вершины.
Тогда понятно, что нет смысла делать изменения больше, чем у одной вершины на уровне, так как нам важна только одна вершина, до которой идет путь, а значит ответ зависит только от того, на каких глубинах мы решили поменять исход (и очевидно, что разные множества изменненых исходов дают разного победителя). А значит если $$$k$$$ фиксированно — $$$\binom{n}{k}$$$ (так как нам нужно просто выбрать, какие из $$$k$$$ глубин мы будем изменять), а значит ответ на задачу равен $$$\sum{\binom{n}{i}}$$$, где $$$0 \leq k \leq min(n, k)$$$.
Задача E. Идея FairyWinx
Перебирите $$$c$$$
$$$gcd(a, b)$$$ является делителем числа $$$a + b$$$.
Вспомните о существовании функции эйлера
Давайте будем перебирать $$$c$$$, тогда $$$gcd(a, b) = gcd(a, a + b) = gcd(a, n - c)$$$. Значит $$$gcd(a, b)$$$ являются делителем числа $$$n - c$$$. Давайте тогда переберем все делители числа $$$n - c$$$. Пусть $$$d$$$ является делителем, тогда количество пар чисел $$$a, b$$$, где $$$a + b = n - c$$$ и $$$gcd(a, b) = d$$$ равно $$$\phi (\frac{n - c}{d})$$$, так как нам нужно $$$a$$$ кратное $$$d$$$ и при этом оно должно быть простым с $$$\frac{n - c}{d}$$$, чтобы $$$gcd$$$ был в точности равен $$$d$$$.
А значит ответ на задачу равен $$$\sum{lcm(c, d) * \phi{\frac{n - c}{d}}}$$$, где $$$1 \leq c \leq n - 2$$$, а $$$d$$$ делит $$$n - c$$$
Задача F. Идея TeaTime
Coming soon