Контест перенесен на 15 минут.
Спасибо всем за участие в Codeforces Beta Round #7. Надеюсь, вам понравилось. В комментариях предлагаю обсудить задачи и систему. Пожалуйста, выскажите ваше мнение, особенно если вы заметили какое-то неадекватное поведение системы. И как всегда я с интересом прочту предложения по улучшению.
С сегодняшнего контеста рейтинг по дивизионам для общих контестов будет считаться отдельно по двум таблицам положений участников. То есть подсчет рейтинга будет эквивалентен проведению двух контестов отдельно для каждого дивизиона по общим задачам.
Еще момент. Мне бы хотелось, чтобы кто-то взял на себя разбор задач прошедшего раунда. Это надо сделать на русском и английском языках. Разумеется вы должны сдать задачи либо на контесте, либо в дорешивании. Если у вас есть желание это сделать - пишите в комментариях. Ваш пост будет опубликован на главной и позже доступен по спец. ссылке из контеста.
Желаю высокого рейтинга,
MikeMrzayanov
UPD. Рейтинги обновлены. Решения доступны для просмотра.
Хм, а я успел его
оттуда взять =)
Получил большое удовольствие!
what's different between them ?
problem in SGU : http://acm.sgu.ru/problem.php?contest=0&problem=106
This problem is quite standart application of linear Diophantine equations. :)
alloc 3
alloc 3
erase 1
alloc 3
defragment
erase 3
alloc 7
Вопрос непосредственно к создателю, Майку Мирзаянову:
- Вы сказали, что рекомендуете читать решения топовых участников. Планируете ли вы открывать решения участников или нет?
Не могу сказать, что испытываю в них острую необходимость, просто интересны планы.
Крошечные погрешности в интерфейсе:
Когда начинается или кончается контест выскакивает окошечко с текстом: "YeZ", можно было бы изменить)
Да, когда истекает любой счетчик времени, то в последний момент он показывает: "00:00:0-1". Мелочи.
Мне больше нравится решать самому, и уже если не получается раз в 5ый - читать разборы, такое бывает редко) Может и зря. Разборы просмотреть полезно, даже если решил сам) Но чаще я их не смотрю.
Но, в кодах иногда можно найти интересные приемы. Только топ кодер наталкивает на мысль, что ничего страшного в открытых кодах нет. Но в общем, люди не любят ими делиться с кем попало, и это тоже правильно.
чето я как-то криво говорю(
Причина действительно общая, но техническая :) Не связанная ни с какими реджаджами.
Не могу сказать, когда всё будет сделано
Нельзя ли хотя бы некоторые раунды проводить так, чтобы они не пересекались с тренировкой на neerc.ifmo.ru? ) Раунд #8 опять с ней пересекается
Or are points given at another system?
А где прочитать, как подсчитывается рейтинг?
is there an available file ( or a way ) to download the problems and print them?
- I entered the practice contest, but am only able to see the solutions of recently submitted people , not all the ones who submitted.
http://mirror.codeforces.com/contest/7/status/E?order=BY_ARRIVED_ASC
If Petr took part in the competition, he will 99% sure appear in this list ;)
По поводу задачи C. http://e-maxx.ru/algo/diofant_2_equation Утверждается, что если c%g==0, то уравнение имеет решение, в противном случае не имеет. Доказательство следует из очевидного факта, что линейная комбинация двух чисел по-прежнему должна делиться на их общий делитель. Объясните, пожалуйста, почему она по-прежнему должна делиться на g?
g = gcd(a, b)
a = xg
b = yg
pa + qb = pxg + qyg = (px + qy)g
Я, к сожалению, не вижу ответа на свой вопрос(или может я его неверно поставил). Хорошо, останется у нас слева g. Но почему требуется именно c%g==0?
ax + by = c
g = gcd(a, b)
Если c не делится на g, то тогда левая часть уравнения делится на g, а правая — нет. Поэтому решений в этом случае нет
А как левая часть может делится на g, если после домножения на (c/g), g в левой части (как и в правой) исчезает?
ax + by делится на g, так как g = GCD(a, b). Поэтому ещё до решения каким бы то ни было алгоритмом можно сказать, что любая линейная комбинация a и b будет делиться на g.
Благодарю. dalex, спасибо за терпение=)
Посмотрел решения участников по E, но так и не понял. Кто может дать идею?
How to solve problem D?
Assume $$$0$$$-based indexing. Let $$$dp_i$$$ denote the degree of the $$$i$$$-th prefix. The length of the prefix, $$$len = i + 1$$$. Firstly, $$$dp_0 = 1$$$, since a $$$1$$$-length string is a palindrome.
Now, to compute $$$dp_i$$$, firstly check to see if $$$i$$$-th prefix is a palindrome or not. If it is not a palindrome $$$dp_i = 0$$$. Otherwise if the prefix is palindrome, its degree would be = (degree of the first half + 1). So, $$$dp_i = dp_{\lfloor\frac{i-1}{2}\rfloor} + 1$$$.
To check whehter the prefix of length $$$len$$$ is a palindrome, you have to check whether the substring on the first $$$\lfloor{\frac{len}{2}}\rfloor$$$ characters is the same as the reverse of the substring on the last $$$\lfloor{\frac{len}{2}}\rfloor$$$ characters. To compare substrings, you can use string hashing. One ways is to build prefix hashes on the string and its reverse to obtain hash of any substring in a O(1) time as described in this blog.
The answer is simply $$$\sum\limits_{i = 0}^{n-1} dp_i$$$.
Code