На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение





Сообщение: 11
ссылка на сообщение  Отправлено: 12.01.21 18:55. Заголовок: Генератор ЕГЭ, задача 2368


Здравствуйте.
Задача 2368
В ответе:
1276 719
И в Excel и на языке программирования получается:
1276 416

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 5 [только новые]


Администратор




Сообщение: 2307
ссылка на сообщение  Отправлено: 12.01.21 19:47. Заголовок: Рассказывайте, как п..


Рассказывайте, как получилось 416.

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 1 
ПрофильЦитата Ответить





Сообщение: 12
ссылка на сообщение  Отправлено: 12.01.21 20:53. Заголовок: dp = def create_..


 

dp = []

def create_dp(n, m):
global dp
dp = [[0] * m for _ in range(n)]

d = []
for s in open("18.txt"):
d.append([0] + [int(i) for i in s.split()])
#print(d)
m = len(d[0])
d.append([0] * m)
n = len(d)
create_dp(n, m)
#print(dp)
for i in range(n - 2, -1, -1):
for j in range(1, m):
dp[ i ][j] = max(dp[ i ][j-1], dp[i+1][j]) + d[ i ][j]
print(dp[0][-1])
create_dp(n, m)
for i in range(n - 2, -1, -1):
for j in range(1, m):
dp[ i ][j] = min(dp[ i ][j-1], dp[i+1][j]) + d[ i ][j]
print(dp[0][-1])



63 78 58 93 49 83 92 3 51 57
10 1 42 24 55 59 66 48 76 79
25 29 87 76 99 63 32 22 87 48
88 40 65 9 86 38 56 31 46 95
79 91 77 62 60 73 90 44 41 51
47 39 73 7 68 4 91 32 75 44
59 65 23 87 58 93 64 34 1 64
42 96 69 33 83 8 37 41 37 91
49 27 94 18 89 55 31 97 62 92
25 68 71 13 67 83 37 22 13 8



Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Сообщение: 2309
ссылка на сообщение  Отправлено: 12.01.21 22:33. Заголовок: Давайте посмотрим на..


Давайте посмотрим на таблицу Excel. Начали из левой нижней клетки, в которую вписана формула. В ней - 25. Затем прошли вверх. В эту клетку нет другого пути. В ней - 49. Поэтому мы должны получить 25 + 49 = 74.

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 1 
ПрофильЦитата Ответить





Сообщение: 13
ссылка на сообщение  Отправлено: 12.01.21 23:57. Заголовок: Да, действительно, п..


Да, действительно, просмотрел, спасибо. Хорошая задача.

 

dp = []

def create_dp(n, m, ex):
global dp
x = {"min": 10 ** 4, "max": 0}
dp = [[x[ex]] * m for _ in range(n)]
dp[n - 2][0] = 0

d = []
for s in open("18.txt"):
d.append([0] + [int(i) for i in s.split()])
#print(d)
m = len(d[0])
d.append([0] * m)
n = len(d)
create_dp(n, m, "max")
#print(dp)
for i in range(n - 2, -1, -1):
for j in range(1, m):
dp[ i ][j] = max(dp[ i ][j-1], dp[i+1][j]) + d[ i ][j]
print(dp[0][-1])
create_dp(n, m, "min")
for i in range(n - 2, -1, -1):
for j in range(1, m):
dp[ i ][j] = min(dp[ i ][j-1], dp[i+1][j]) + d[ i ][j]
print(dp[0][-1])

'''
1276
719
'''





Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 14
ссылка на сообщение  Отправлено: 13.01.21 01:05. Заголовок: Даже не знаю, какой ..


Даже не знаю, какой вариант проще, если исключить Excel:

 

dp = []

def create_dp(n, m):
global dp
dp = [[0] * m for _ in range(n)]
dp[n - 1][0] = d[n - 1][0]
for j in range(1,m) : dp[n - 1][j] = d[n - 1][j] + dp[n - 1][j-1]
for i in range(n - 2,-1, -1) : dp[0] = d[0] + dp[i + 1][0]

d = []
for s in open("18.txt"):
d.append([int(i) for i in s.split()])
#print(d)
m = len(d[0])
n = len(d)
create_dp(n, m)

for i in range(n - 2, -1, -1):
for j in range(1, m):
dp[ i ][j] = max(dp[ i ][j-1], dp[i+1][j]) + d[ i ][j]
print(dp[0][-1])

for i in range(n - 2, -1, -1):
for j in range(1, m):
dp[ i ][j] = min(dp[ i ][j-1], dp[i+1][j]) + d[ i ][j]
print(dp[0][-1])



Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1048
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет