Advertisement
gmusya

Untitled

Dec 13th, 2022
586
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 KB | None | 0 0
  1. F. Ребро (u, v) лежит на путях, которые начинаются в поддереве u и заканчиваются в наддереве u. Таких путей sz[u] на (n - sz[u]).
  2. G. Посчитаем ответ для корня. Теперь запускаемся из корня и поддерживаем ответ для текущей вершины. При переходе ответ меняется на вес ребра, умноженный на (n - 2 * sz[u]) или что-то такое (потому что расстояние до n - sz[u] увеличилось и расстояние до sz[u] вершин уменьшилось)
  3. I. dp[v][0/1] = минимальному количеству замен в поддереве, чтобы в v оказалось значение 0/1. Пересчет — перебираем значения детей и операцию в вершине
  4. J. dp[кол-во цифр][сумма цифр]
  5. K. Количество «хороших» чисел от L до R — это количество «хороших чисел до R» минус количество «хороших чисел до L - 1». Если считаем количество k-значных до 99...99 (k девяток), то несложно. Если считаем количество k-значных чисел до произвольного k-значного числа X, то: dp[0/1][кол-во цифр][последняя цифра], где 0 означает, что нас префикс совпадает с X (то есть добирать можно только то, что не больше суффикса X), а 1 означает, что наш префикс меньше префикса X (то есть дальше можно добирать что угодно)
  6. L. dp[кол-во цифр][последняя цифра]
  7. M. Преподсчитали трехзначные простые. dp[кол-во цифр][предпоследняя цифра][последняя цифра]
  8. P. Было на лекции
  9. Q. Тоже было на лекции. Обратите внимание на методы _Find_first() и _Find_next(x)
  10. R. dp[всего взято элементов][сумма в первой куче][количество в первой куче]. dp[100][50 * 100][50]
  11. S. dp[всего взято элементов][сумма в первой][сумма во второй]. dp[60][20 * 60][20 * 60]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement