Всем привет) Сегодня на тренировке решали олимпиаду "2012-2013 ACM-ICPC, NEERC, Центральный четвертьфинал ". У нас не получилось сдать задачи I и J. В принципе не получилось сдать еще больше, но над этими мы бились, пытаясь получить AC. В J у нас было WA56, а в I точно не правильное решение. Поэтому хотелось бы узнать как решать эти задачи и плюс еще и F.
F — задача имеет неверное жадное решение, которое не вписывается в ограничения для диапазона получаемых результатов (до 10^9), но оно получит AC. Идея — для каждого столбика исходной матрицы посчитаем LCM. Получим последовательность чисел, которую надо сделать возрастающей. Жадно на каждом шаге будем домножать текущее число на разные числа подряд и проверять — выполняется ли при этом все условия на остальные GCD. Если число подошло — переходим к другому числу последовательности.
J — найти сильносвязные компоненты в графе, сжать каждую компоненту в точку и в полученом дереве связать 2 самые удалённые вершины через 2 запуска bfs.
На сайте http://rsatu.ru в разделе ACM выложены тесты (и может что то ещё) к задачам.
Я бегло решения посмотрел, правильно ли я понял, что у авторов такое же по F. А как оно доказывается?
Спасибо! У нас было по F такое же решение, только умножать мы думали не просто на разные числа, а на минимальный возможный простой делитель. Только у нас встал вопрос, может быть такое, что вместо того, чтобы умножить несколько раз на маленькое число, лучше было бы умножить один раз на большое (чтобы, например, избежать превышения 1e9).