Size: a a a

2021 March 26

0

0xFF in pro.algorithms
Пишу Game of Life, посоветуйте алгоритм для поиска всех соседей [i, j] клетки
источник

АJ

Артём Jin in pro.algorithms
for y in range(self.height):
           for x in range(self.width):
               s = 0
               for dy in range(-1, 2):
                   for dx in range(-1, 2):
                       if x + dx < 0 or x + dx >= self.width or y + dy < 0 or y + dy >= self.height:
                           continue
                       s += self.board[y + dy][x + dx]
               s -= self.board[y][x]
источник

АJ

Артём Jin in pro.algorithms
вот на петухоне
источник

АJ

Артём Jin in pro.algorithms
s - кол-во живых вокруг
источник

A

Angelina in pro.algorithms
Подскажите, как можно проще ассимптотику доказать?
источник

A

Aldar in pro.algorithms
Angelina
Подскажите, как можно проще ассимптотику доказать?
поделить на n и доказать что эта штука будет иметь конечный предел
источник

 P

 ‌‌Gleb Pilipets... in pro.algorithms
Ребят, а можете подсказать, как решать такую задачу.

Given an mxn grid of 0s,1s and 2s (0 denoting an obstacle, 1 denoting empty cell and 2 denoting cell with gold). Find the path used to reach from (0,0) to (m - 1, n - 1) collecting maximum gold if you are allowed to travel in any four directions and can take a maximum of k steps.
Нельзя посещать ту же клетку дважды.

Я набросал(не запускал) такое решение через dfs + backtracking, но можно ли оптимальнее?
def solve(grid, k):
  visited = [[False] * len(grid[0]) for _ in range(len(grid))]
  reach, res = dfs(0, 0, k, grid, visited)
  return res if reach else 0

def dfs(i, j, k, grid, visited):
  if i < 0 or i >= len(grid) or j < 0 or j >= len(grid[0]) or not k or visited[i][j] or not grid[i][j]: return False, 0
  if i == len(grid) - 1 and j == len(grid[0]) - 1: return True, grid[i][j] - 1
  max_reach, max_sum = False, 0
  visited[i][j] = True
  for i, j in (i+1, j), (i-1, j), (i, j+1), (i, j-1):
      reach, sum = dfs(i, j, k-1, grid, visited)
      if reach: max_reach, max_sum = True, max(max_sum, sum)
  visited[i][j] = False
  return max_reach, grid[i][j] - 1 + max_sum if max_reach else False, 0
источник

 P

 ‌‌Gleb Pilipets... in pro.algorithms
аа, ну ещё, по-идее pruning можно делать, если manhattan distance до конечной точки > k.
источник

IZ

Ilia Zviagin in pro.algorithms
Angelina
Подскажите, как можно проще ассимптотику доказать?
Скажи пож. а как такое нарисовать можно?
источник

NK

Nikolai Karpov in pro.algorithms
Ilia Zviagin
Скажи пож. а как такое нарисовать можно?
берешь ipad + apple pencil рисуешь
источник

A

Angelina in pro.algorithms
Ilia Zviagin
Скажи пож. а как такое нарисовать можно?
в плане как?
источник

IZ

Ilia Zviagin in pro.algorithms
Angelina
в плане как?
Каким софтом.
источник

A

Angelina in pro.algorithms
ну это приложение notability
источник

IZ

Ilia Zviagin in pro.algorithms
Angelina
ну это приложение notability
Операционка?
источник

A

Angelina in pro.algorithms
на айпаде пишу
источник

IZ

Ilia Zviagin in pro.algorithms
Angelina
на айпаде пишу
Понятно, спасибо.
источник

MK

Matwey Kornilov in pro.algorithms
0xFF
Пишу Game of Life, посоветуйте алгоритм для поиска всех соседей [i, j] клетки
Вроде бы там через свёртку можно следующий шаг нарисовать
источник
2021 March 27

.

. in pro.algorithms
Привет всем, кто то решал эту задачу ?
https://acm.timus.ru/problem.aspx?space=1&num=2041
В условии вкратце дано n пар точек вида (ai, bi) и ai <= bi.
нужно их так переставить так чтобы для любого выполнялось b[i] > a[i + 1].
Я так понял что если для всех i выполнилось ai != bi то мы можем отсортить их по 'b' и все будет ок) А вот что в случае равенства не пойму что делать
источник

АJ

Артём Jin in pro.algorithms
.
Привет всем, кто то решал эту задачу ?
https://acm.timus.ru/problem.aspx?space=1&num=2041
В условии вкратце дано n пар точек вида (ai, bi) и ai <= bi.
нужно их так переставить так чтобы для любого выполнялось b[i] > a[i + 1].
Я так понял что если для всех i выполнилось ai != bi то мы можем отсортить их по 'b' и все будет ок) А вот что в случае равенства не пойму что делать
Чёт условие странное). Посмотрел обсуждение, там есть доп. тесты, после них вообще всё чудесатее и чудесатее.
источник

PT

Panavia Tornado in pro.algorithms
.
Привет всем, кто то решал эту задачу ?
https://acm.timus.ru/problem.aspx?space=1&num=2041
В условии вкратце дано n пар точек вида (ai, bi) и ai <= bi.
нужно их так переставить так чтобы для любого выполнялось b[i] > a[i + 1].
Я так понял что если для всех i выполнилось ai != bi то мы можем отсортить их по 'b' и все будет ок) А вот что в случае равенства не пойму что делать
Скорей всего задача похоже на графы , ребра это возможные соединения bi--ai+1 и задача состоит в обходе графа со всеми точками
источник