Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия | Следующая версия Следующая версия справа и слева | ||
11_2021 [2021/03/03 13:05] super_admin |
11_2021 [2021/03/03 13:22] super_admin [Варианты 27 задачи с решениями] |
||
---|---|---|---|
Строка 217: | Строка 217: | ||
if r == -2: | if r == -2: | ||
print("{}:{}; ".format(i,r), end= "") | print("{}:{}; ".format(i,r), end= "") | ||
+ | </code> | ||
+ | |||
+ | Две кучи | ||
+ | |||
+ | <code Python> | ||
+ | mem = {} | ||
+ | def g(x, s): | ||
+ | if (x, s) in mem: return mem[(x, s)] | ||
+ | if x + s >= win: | ||
+ | mem[(x, s)] = 0 | ||
+ | return 0 | ||
+ | res = [g(x + 1, s), g(x * 2, s), g(x, s + 1), g(x, s * 2)] | ||
+ | if 0 in res: | ||
+ | mem[(x, s)] = 1 | ||
+ | return 1 | ||
+ | if min(res) > 0: | ||
+ | mem[(x, s)] = max(res) * -1 | ||
+ | return max(res) * -1 | ||
+ | else: | ||
+ | d = max([i for i in res if i < 0]) * -1 + 1 | ||
+ | mem[(x, s)] = d | ||
+ | return d | ||
+ | win = 55 | ||
+ | x = 5 | ||
+ | for i in range(1, 50): | ||
+ | r = g(x, i) | ||
+ | if r == -2: | ||
+ | print("{}:{}; ".format(i,r), end= "") | ||
+ | |||
</code> | </code> | ||
[[https://disk.yandex.ru/i/b9pUPsa9ks_MUA]] pdf | [[https://disk.yandex.ru/i/b9pUPsa9ks_MUA]] pdf | ||