Xiran, Нет, все еще формулировка ужасная. Итак, правильно ли я понял:
Была матрица из букв, потом по известной вам таблице буквы преобразовали в цифры, потом одним из трех способов преобразовали сложив соседей (вам неизвестно каким) и результат дали вам - надо восстановить исходные буквы?
Xiran, Так, уже лучше. На исходную матрицу ограничения: целые число от 1 до 9. При чем там буквы и "корообдирщик"? Это задача заменить буквы на цифры, чтобы арифметическое выражение выполнялось? И вы как-то свели ее к матрице и таким преобразованиям?
RddLV, почмотрите код в вопросе. Бин поиск по времени. Есть функция СколькоШаров(время), которая считает, сколько шаров можно надуть за заданное время. Она монотонна. Значит можно бинпоиском найти минимальное время, за которое можно надуть нужное количество шаров.
XerimHD, Можно. Вы там где на try_counter реагируете, вставьте break. И после цикла по collision точно так же сделайте: если try_counter большой - делайте break.
1) Код не весь. Начало цикла преведено, а конец и, особенно, условие выхода из внутреннего цикла - нет.
2) В каком цикле оно виснет?
3) Что этот код должен делать по вашей задумке?
дискретность все портит.
Как в задаче о рюкзаке - вроде понятно, что надо брать самые дорогие на кг предметы, но так можно делать, только если предметы сильно меньше оставшегося места.
А в этой задаче бинпоиск (оно же дихотомия по ответу) - стандартный прием. Вместо того, чтобы считать время от количества шаров, что очень сложно, можно всего за логарифм вывернуть задачу наизнанку и считать количество шаров от времени. Это решение за O(n log n). Быстрее решения, насколько я могу судить, не существует.
Это хорошая идея, но она страдает той же проблемой: если все надувальщики отдыхают после каждого шара, и у них времена все разные, то у вас будет фактически по одному шару и считаться. Этих самых сегментов может быть очень-очень много.
mrbudson, Если выигрышный ход еще не найден, то переходим к следующему ходу. Работает в связке с циклом while несколько строчек выше. Вообще, написанно не самым очевидным способом. Это было бы лучше в виде, допустим цикла for и выхода через break.
Думайте, что происходит, если winner() вернет computer или нет.
mrbudson, Она проверяет, что функция winner() возвращает computer. Логично предположить, что это означает, что компьютер побеждает на данной конфигурации доски.
В общем случае - сложно понять. Надо или подобрать 2 точки, которые дают одинаковое значение у функции, или как-то доказать, что таких быть не может. Если функция непрерывна, то можно доказать, что она монотонна и тогда уникальность всех значений очевидна. Именно этот случай тут и происходит (найдите производную для -1
Fomkol, Файлы никак не отслеживаются. Ничего на вашем компьютере странного не происходит, и переустанавливать ничего не надо, если вы только этот скрипт каждый день не запускаете. Прекратите его запускать и все. Однако, в момент, когда вы этот скрипт запускали, разработчики Геншина видели ваши обращения к своим серверам. С их серверов вы эти данные никак не сотрете, если они их там собирают. Если вас еще не забанили, то уже вряд ли что-то сделают.
Аналогия тут: этот скрипт - это дубликат ключа к черному ходу на склад геншина. Вы когда им пользуетесь туда залезаете и запись в каком-то журнале смотрите. Если там были камеры - вы уже ничего не сделаете. Но тела никакого нет, чтобы его надо было специально прятать. Если там не было камер - то вам ничего делать не надо.