|
0
I encourage you to implement it (it shouldn’t be that big, should it?) and test it against the above testcase :) |
|
+4
Let’s wait a bit. |
|
+151
|
|
+43
Похвастаюсь и тут, что у меня решение, которое я не успел додебагать на контесте, прошло в практис руме, и оно не использует то, что a маленькое. Сводим к стандартной задаче подсчета суммы целых частей (a*x+b)/c по x от 0 до n-1. |
|
+24
Yeah, now I understand — it looks like the selection system is quite prone to this kind of thing happening. When I was a participant at the Russian IOI camps, there was about 12 days on average that decided the team, not 2, so it was much more stable and most gaps were more than one problem. |
|
+56
Yeah, it’s a pity that IOI selection was decided on that :( But how come it’s just one problem that decides who gets on the team and who doesn’t? How many problems in total affect the selection? |
|
-4
Apparently there was a technical problem with the recording, and most probably it’s lost :-( We’re trying to see if we can recover it from backups, but most probably it’s gone. Sorry. |
|
+32
Да, товарищ выше верно пишет — я не против пересечений как таковых, их действительно при текущем количестве контестов не избежать. Но хотелось бы знать об этих пересечениях заранее, и иметь возможность выбрать. |
|
0
Yes. Meanwhile, you can ask and vote for questions at http://goo.gl/eoWf0 :) |
|
+5
Ну то есть, отвечая на второй вопрос — для подсчета time про третьего вообще забываем. |
|
0
В этом сэмпле никто никого не может поймать — они же на цикле? Поэтому все time равны INF. Считать time примерно так — построим ту часть графа, начинающуюся в вершине B, которая является деревом — т.е. как только мы доходим до цикла, помечаем эту вершину как “выход” и дальше не идём. В этой части есть ровно одна вершина, откуда стартует A — либо где он сейчас, либо где он появится. Подвесим часть за неё, тогда нужно на пути от B до корня понять, докуда B ещё может дойти, и из всех этих вершин найти самого глубокого ребёнка, считая глубину цикла INF. |
|
+10
В G зашло в дорешивании следующее: 1) Пусть time(X,Y) = INF, если игрок X не может поймать игрока Y, и максимальному времени, сколько Y может сопротивляться, если X может поймать Y. 2) Тогда пусть win(A) = time(A, B), если time(A, B) < time(C, A) (вроде как естественное условие, но может кстати и без него будет работать?..) и time(A, B) < time(C, B) (иначе C может "встать между A и B и добиться ничьей), и INF иначе. Аналогично для win(B) и win(C). 3) Тогда если среди win есть единственный минимум, то он и побеждает в игре для троих, иначе ничья. Выглядит правдоподобно, но это далеко не первая итерация, и все предыдущие тоже выглядели правдоподобно :) Может у кого-то есть объяснение или более простое работающее решение? |
|
+22
У меня все было ровно так же до момента внимательного взгляда, ага. Надо его прокачивать, похоже :) |
|
+5
Сорри, что все еще не допираю. Новые ходы ведь появляются во всех местах начиная с b?.. Или ты имеешь в виду, что нужно посмотреть, что b+1 проигрышная, дальше понять, что тогда до 2b+1 опять будет чередование, потом опять две проигрышных, и так далее, а потом заметить что прыжки на b^2 и больше ничего не меняют? Пожалуй, да, так можно было сделать :) Интересно, какое соотношение тех, кто так сделал и тех, кто увидел закономерность в ответах :) |
|
0
Ну я так и сделал, но вот закономерность увидел небыстро. Может если бы выписал для b=2 а не b=10 было бы легче и правда :) |
|
+8
Можно на “ты” :) Я про решение подзадачи, когда есть ним с одной кучей и можно брать степени b. Доказательство SkidanovAlex выше уже прочитал, и правда просто. Остался второй вопрос — откуда может прийти в голову что важна четность остатка от деления на b+1 :) |
|
+18
Ага. 80 минут ее решал, когда решил наконец, решил забить на раунд пока не поздно :) Очень интересно, как это придумали люди — у меня получилось только методом внимательного всматривания в ответы и только за час :) Там какое-то простое соображение, или хотя бы какое-то простое доказательство? |
|
+8
Она только финалистам похоже видна, да и результатов систеста там нет. |
|
+21
По штрафному времени :) Как в ACM. |
|
+1
Oops, I’m terribly sorry — the scoreboard contained a name in unknown language, but now that I look closer, it’s indeed in Korean. Apparently Po-Ru doesn’t have a Codeforces account. |
|
0
Ну пусть f(x) и g(x) два многочлена таких, что f(x)-f(x-1)=g(x)-g(x-1) для всех целых x. Тогда нетрудно заметить, что f(x)=g(x)+C (пусть C=f(0)-g(0), тогда f(1)-g(1)=f(0)-f(0)+f(1)-g(0)+g(0)-g(1)=f(0)-g(0)+(f(1)-f(0))-(g(1)-g(0))=f(0)-g(0)=C, и так далее. |
|
+13
Выводится несложно, Вася Астахов вот например рассказал: Пусть P_k(n) — это сумму k-ых степеней от 1 до n. Тогда P_k(n)-P_k(n-1)=n^k. Продифференцируем обе части: P’k(n)-P’k(n-1)=kn^{k-1}=k(P{k-1}(n)-P{k-1}(n-1)). Откуда P’k(n)=k*P{k-1}(n)+C, и надо всего лишь найти два коэффициента. |
|
+94
Ээ, не понял. На кубке запрещено пользоваться Интернетом, какая разница есть инет на локальных компах или нет? Если бы можно было пользоваться интернетом, мы бы сегодня часа полтора-два точно сэкономили. |
|
+15
О! Скажи, результатов ждать в ближайший час или ложиться спать? |
|
+8
Да, пруф вроде верный. Из него кстати следует (да в общем и так понятно), что можно вместо бесконечности сделать 2, тогда точно нет проблемы с ТЛем. |
|
+21
С ходу не знаю, скорее всего как-то можно добиться лексикографической первости в каком-то смысле :) |
|
+24
Может, нужно просто все остальные ребра сделать бесконечной пропускной способности, тогда они не попадут в разрез? |
|
+70
VLC это умеет, и картинка получается отличная вроде. В меню "Capture" или что-то вроде.
|
|
+21
Если раскрыть скобки во всех операциях max, то видно, что dp[a][b][c] (для любых A,B,C) - это максимум из какого-то конечного числа линейных комбинаций с суммой коэффициентов 1 чисел 0 (мы слили), 1 (мы выиграли) и X (переигровка). При этом при X=P dp[VA][VB][MA]=P. Тогда, при X>P dp[VA][VB][MA]>=P получается просто из той же самой линейной комбинации, на которой достигался максимум при X=P, а dp[VA][VB][MA]<X получается из того, что все линейные комбинации имеют коэффициент при X меньше единицы (так как всегда есть ненулевой шанс что кто-то выиграет). При X<P dp[VA][VB][MA]>X получается из той же линейной комбинации, на которой достигался максимум при X=P, а dp[VA][VB][MA]<=P получается из того, что все эти линейные комбинации монотонно неубывают, поэтому если бы какая-то при меньшем X была больше P, то и при P осталась бы больше.
|
|
+29
По-разному бывает. Когда решение длинное - то да, обычно ищу паленые идеи. Если совсем короткое - то читаю целиком ища и такие баги. Если догадываюсь, какой баг все должны сделать - сразу ищу его.
Можно на "ты" :) |
|
0
Never mind, I've read the editorial and the part that Gaussian elimination is not supposed to pass. It's strange that the assertions that verify that the Gaussian elimination error is not big do not fail in my solution, though.
|
|
0
Could you share the testcase my solution fails on Random Walk?
|
|
+92
Ну я просто смотрел, похоже ли решение на моё :) |
|
+10
Хм, в этой версии есть переполнение инта, странно, что она работает. Вот вроде без бага:
http://pastebin.com/2Twssz4p |
|
+5
Правда ваша - похоже, перепутал эту задачу с какой-то другой. На самом деле работает 1.1s:
http://pastebin.com/3FTvcHPh |
|
+8
Дерево отрезков не нужно: нам ведь просто нужно посчитать длину объединения отрезков оффлайн :)
|
|
+16
У меня считалось количество компонент валентности 1 каждого размера - таких состояний 1.3M (каждая компонента имеет валентноть 0 либо 1, но компоненты валентности 0 нам не интересны - только их суммарный размер, который получается вычитанием).
|
|
+14
Ух ты! Зашло в дорешивании бфсом с двух концов.
А почему это быстрее, можно как-то осознать? Наверное же можно искуственно сделать, чтобы именно в среднем слое было мало состояний? |
|
+18
Мы, конечно, писали на Java, но у Андрея на макстесте работало 0.1s, кажется. Так что и на плюсах должно было заходить :)
|
|
+8
А, я кажется понял. Бессмысленно любого остатка в дельте брать больше k. Круто!
|
|
0
Ого, понятно. А как это - в двух словах не объяснить?
|
|
+5
Отличные задачи!
Единственное - что за лажа с тайм лимитом в задаче Buying Candies? Или ее надо было решать быстрее, чем за N*K^2? У меня решение на яве не заходит, на плюсах еле зашло после оптимизации в 2 раза. Ну и все бревна из-за багов в переводе с явы на плюсы и в этой оптимизации. |
|
+10
Suppose the entrance and exit are fixed. For a given edge x, what is the expected number of times that the DFS will traverse it before reaching the exit? For edges that lie on the path from entrance to exit, it's 1, because we will always traverse them exactly once. What about, say, another edge from entrance - what is the possible cases for it? Can we traverse it 0 times? once? twice? more? What are the probabilities of those cases? Please tell if that's not enough to figure it out. |
|
0
Yeah, Egor is right.
|
|
+75
Yeah, let's lose some karma :) I agree. Problem C: a simple idea + standard problem. Implementing solution for standard problem takes much more time than inventing the idea. Problem D: a simple idea + standard problem. And an awful statement. "We'll find a list of such pairs of numbers for which the corresponding substrings of string x are equal to string y. Let's sort this list of pairs according to the pair's first number's increasing. The value of function F(x, y) equals the number of non-empty continuous sequences in the list." Seriously? What's the point in encrypting n(n+1)/2 that way? I've spent several minutes trying to convince myself what "continuous" means (I've used the Russian statement, but the English translation is good, so the statement is equally awful), I couldn't believe this long paragraph is just about n(n+1)/2. Problem E: a nice, no so easy idea - but still with a tedious standard problem after it! Why 100000? Why not 5000? I'm sorry for being so negative, I hope you understand it's just my impressions. See http://www.mit.edu/~jcb/tact.html |
|
+5
Мы, когда запихивали, одной из оптимизаций сделали запоминание giant step, и перебор baby step. Ведь чтобы сделать baby step, нужно умножить на x и взять остаток, а это за 3 битовые операции делается - poly <<= 1; if ((poly & (1L << 32)) != 0) poly ^= MOD;
|
|
+8
Ага, видимо у тебя то же самое решение, только с 2->inf.
|
|
+18
То, что я писал на контесте, но не успел, и потом оно зашло в дорешивании: сгенерируем N тестов, потом будем делать каждый ход или два так, чтобы минимизировать сумму f(позиция в каждом тесте) для некоторой функции f. Если f - просто расстояние до выхода, то не работает - в некоторый момент упирается в локальный минимум. Сработало f = -2^(-расстояние_до_выхода). Тогда при тренировке на N=20000 тестах оно сходится за 5000 шагов (на всех 20000 тестах приходит в выход), и на независимом тест-сете получается в среднем 800 шагов на тест (а на трейнинг сете 700).
|
|
+13
Да, спасибо! Фотки хорошие.
|
|
+3
Сообщаю - логина на dropbox нет, store.acm-server.ru, похоже, выключен или лежит. Выложи .torrent файл куда-нибудь еще?
|
|
+11
Ну это уж не моя вина - сколько можно спать :)
|
|
0
I have no idea.
|
|
0
And the contest is over with no major changes at the top. meret with 100, then rng_58 with 90, then ivan.metelsky with 77. Let's wait for the large results to be revealed.
|
|
0
But meret retakes the lead with B-large and 100 points.
|
|
+20
|
|
+12
47 minutes to go, 3 people with 77.
|
|
+17
Meanwhile, we have a new leader - ivan.metelsky leads with 77 points by solving D-small. If we add up points for all datasets solved by at least one contestant, though, we get 140.
|
|
+12
|
|
+19
That long silence from rng_58 was for a reason - E-small+E-large and tentative second place!
|
|
+12
And that means we have a new leader - donehl
|
|
0
B-large is now submitted by 2 contestants.
|
|
0
|
|
0
Somebody else has attempted B-large. We'll learn who in 8 minutes :)
|
|
0
According to https://plus.google.com/110928860973677468355/posts/8wLb6QCw7eG, nika didn't make it. All others from Egor's post are there.
|
|
0
meret finally solves all "opened" problems. Since he doesn't have wrong submissions, one needs to solve something else to overtake him.
|
|
0
Wow, an unexpected submit from voover - I didn't even know he was participating - apparently somebody from http://apps.topcoder.com/forums/?module=Thread&threadID=706558&mc=114#1387375 couldn't make it.
|
|
0
At mid-contest, he's still in the lead. The problems solved by at least one contestant are A-small, A-large, B-small, E-small, but nobody got all of them (yet?).
|
|
0
Now meret takes the lead by solving A-small and A-large in addition to E-small.
|
|
0
|
|
0
|
|
0
1h18m - pashka still leading with 30 points. He was in the lead (shared for the first 25ish minutes) during the entire contest so far!
|
|
0
And a time-expired for him on B-large. Ouch.
|
|
0
More than an hour into the contest, still just 11 contestants with successful submissions.
|
|
0
There's probably too much submissions now to enumerate them. ACRush is the first TC target to submit a problem. B-small, after 2 wrong attempts. A 8-minute penalty to carry through the entire contest.
|
|
0
So does donehl
|
|
0
ivan.metelsky gets A-small.
|
|
0
There's also a long-standing attempt at D-small which I guess was unsuccessful since it's been more than 4 minutes.
|
|
0
And hanshuai. None of the submitters is a TopCoder target, while 5 of the competitors are. What are the heavyweights doing?
|
|
0
|
|
+1
pashka submits A-large as well. It looks like there's not much to get WA on, so hopefully it's good.
|
|
0
Meanwhile, there are also attempts at A-large and E-easy.
|
|
0
From vepifanov, also correct. Go Russia!
|
|
0
And there's also an attempt at B-easy.
|
|
0
Finally pashka gets A-easy!
|
|
0
Or maybe too tough? 25 minutes, still not even an easy input submission.
|
|
+10
Still no submissions at 15 minutes. Apparently the problems are tough, good!
|
|
+5
|
|
+15
No, I'm in Juan-les-Pins now :)
|
|
0
I'd guess people are still setting up because of some previous event (breakfast? :)) running late.
|
|
+10
No. I'm on vacation without contact with the event :)
|
|
+5
Apparently the contest gets postponed over and over again :)
|
|
+5
What is the main place where the spectators discuss what's going on?
|
|
0
Ну, точнее, я на автомате подумал, что целевая функция - это сумма модулей разностей, как было бы естественно, а не модуль суммы разностей. А тогда увеличивать бессмысленно.
|
|
+13
Нельзя увеличивать мощность. Это, видимо, не написано явно в условии, но я почему-то так понял :)
|
|
+8
Практис рум появился, систест прошло. Код можно там тоже посмотреть теперь.
|
|
+5
Кмк, это минимальный разрез. Для каждого радара построим две цепочки - одна из "выходных" вершин, вторая из "входных", по одной вершине для каждой мощности. Разрез цепочки "выходных" или "входных" вершин между мощностями i и i+1 соответствует уменьшению мощности до i. Есть дуга из "выходной" вершины от одного радара до "входной" вершины другого когда соответствующие окружности пересекаются. Ну и надо разрезом отделить левую сторону от правой.
Плюс еще можно пооптимизировать, убрав много ненужных вершин и ребер. Я написал за минуту до конца, но не прошел сэмплы. После контеста нашел два бага, сэмплы теперь проходят, практис рума пока нет :) |
|
+10
Я так понимаю, что условие подразумевало (как мне кажется, верное) утверждение, что существует наша стратегия, дающая максимальную вероятность выигрыша при _любой_ стратегии противника.
|
|
+4
Логично - я стал в топкодере только после финала участвовать :)
|
|
+23
Нет, зачем пара стеков. Во-первых действительно все остатки по модулю x рассматриваем отдельно. Для каждого нам нужно найти min(a[i], a[i-1]+1,a[i-2]+2,...,a[i-y]+y) для каждого i. Обозначим b[i]=a[i]-i. Тогда получаем, что нужно найти min(b[i]+i,b[i-1]+i,...,b[i-y]+i)=i+min(b[i],b[i-1],...,b[i-y]). То есть нужно найти минимумы b'шек на отрезках длины y+1. Это проще всего сделать так: разобьем весь отрезок на куски по y+1, и в каждом куске подсчитаем минимум от каждого числа налево и направо. Тогда любой отрезок длины y+1 представляется в виде объединения двух уже подсчитанных отрезков.
|
|
0
Откуда?
|



