1. Главная
  2. Библиотека
  3. Другое
  4. Подберите такую таблицу , где , каждая клетка которой л...
Разбор задачи

Подберите такую таблицу , где , каждая клетка которой либо свободна, либо занята, чтобы количество путей из клетки в клетку длины по свободным клеткам было равно заданному числу . Нумерация клеток идет сверху вниз, слева направо. Формат ввода В

  • Предмет: Другое
  • Автор: Кэмп
Подберите такую таблицу , где , каждая клетка которой либо свободна, либо занята, чтобы количество путей из клетки в клетку длины по свободным клеткам было равно заданному числу . Нумерация клеток идет сверху вниз, слева направо. Формат ввода В

Условие:

Ограничениевремени1секундаОграничениепамяти64МбВводстандартныйвводилиinput.txtВыводстандартныйвыводилиoutput.txt\begin{array}{|l|l|} \hline Ограничение времени & 1 секунда \\ \hline Ограничение памяти & 64 Мб \\ \hline Ввод & стандартный ввод или input.txt \\ \hline Вывод & стандартный вывод или output.txt \\ \hline \end{array}

Подберите такую таблицу n×mn \times m, где 1n,m1201 \leq n, m \leq 120, каждая клетка которой либо свободна, либо занята, чтобы количество путей из клетки (1,1)(1,1) в клетку (n,m)(n, m) длины n+m1n+m-1 по свободным клеткам было равно заданному числу kk. Нумерация клеток идет сверху вниз, слева направо.

Формат ввода В единственной строке входа записано число k,1k1017k, 1 \leq k \leq 10^{17}.

Формат вывода В первой строке два числа nn и mm - размеры таблицы, 1n,m1201 \leq n, m \leq 120. В следующих nn строках по mm символов, описывающих таблицу. Свободная клетка кодируется символом ., занятая - символом #.

Гарантируется, что для данного kk существует ответ.

Решение:

Ниже описывается один из способов построения лабиринта, удовлетворяющего условию задачи «Лабиринт Паскаля». Заметим, что требуемые пути должны иметь ровно длину n+m–1 (то есть идти строго вправо и вниз), а число таких путей в полностью свободном прямоугольнике n×m равно биномиальному коэффициенту C(n+m–2, n–1). Но k может быть любым числом от 1 до 10^17, а не обязательно биномиальным коэффициентом; значит, нам нужно расставить препятствия так, чтобы изначальный «паскальевский» ход динамики (dp[i][j] = dp[i–1][j] + dp[i][j–1]) дал ровно k путей.

Пример идеи решения:

...

Внутри — полный разбор, аргументация, алгоритм решения, частые ошибки и как отвечать на каверзные вопросы препода, если спросит

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какова основная идея построения лабиринта для получения заданного числа путей k?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Не нашел нужную задачу?

Воспользуйся поиском

Выбери предмет