Advertisement
nq1s788

Untitled

Nov 11th, 2024
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.82 KB | None | 0 0
  1. Будем хранить в dp[i] кол-во способов попасть из ячейки 1 ячейку i.
  2.  
  3. База динамики: dp[1] = 1. Один способ -- стоять на месте.
  4.  
  5. Переход динамики: Кол-во способов попасть в i-ю ячейку -- из (i-k)-той ячейки dp[i - k] способов, из (i-k+1)-той ячейки dp[i - k + 1] способов, ... , из (i-1)-й dp[i - 1] способов. Получается, что всего способов прийти в нее будет dp[i - k] + dp[i - k + 1] + ... + dp[i - 1] способов.
  6.  
  7. Пример кода на python:
  8. n, k = map(int, input().split())
  9. dp = [0] * (n + 1)
  10. dp[1] = 1
  11. for i in range(2, n + 1):
  12.     for prev in range(max(1, i - k), i):
  13.         dp[i] += dp[prev]
  14. print(dp[n])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement