PS Столкнулся с одной проблемкой: вобщем открывал код участников для взлома, всё нормально вроде, а у одного постоянно выдавало "You need a newer version of Adoube Flash (ну что-то в этом роде)"... в чем прикол? у всех остальных норма, а тут никак...
это означает придумать тест, на котором решение участника выдаст неправильный ответ. надо в списке задач "залочить" свою задачу (нажать замочек). тогда после этого в комнате по нажатию ctrl + сданная задача у участника - появляется код задачи с кнопкой "взломать".
На своем ходе i-ый игрок берет самую левую цифру числа A и дописывает ее в конец своего числа Si, Числа игроков после каждого из ходов: 0)0 0 1)1 0 2)12 0 3)12 3 4)12 34
Hello! I have a question. Can somebody give me some "difficults" test cases for problem E? I have Wrong Answear on test 11 and I have no ideea why. Thank you very much
I don't know how you solved the problem, but in my solution there was no need for 64-bit integers(because i didn't keep the numbers in any variables). Anyway, i'm not very sure if my solution is right, this is why i am asking for some tests:) Thx
I cant figure what is wrong with my D :/, tried a lot of tests here and all of them are ok, does anyone knows the test number 4? (its giving me PE, but I guess its WA)
"It is guaranteed that the set of breaks is correct, i.e. there is some order of the given breaks that each next break divides exactly one part of the bar into two non-empty parts.
Output
Output n + 1 numbers — areas of the resulting parts in the increasing order."
N is at least 1, and you cant break it on empty parts!
Спасибо за помощь, ошибка найдена, тест пройден. Думаю, что возможность получения тестов на этапе дорешивания будет очень полезна и поможет уменьшить большое количество вопросов по типа "дайте тест № такой-то".
Мне кажется публикация тестов не спортивна. Как-то это по-читерски - не думая просто взять и узнать тест.
Была одна задача которую я не мог решить в течение полугода - не сдавался никак последний тест :) Раз в неделю или в две недели я садился с листком бумаги и рисовал кучу тестов и много думал. В конце концов после одной "гулянки" я проснулся в 6 утра и мне пришло в голову исправление моего решения. Не одеваясь я включил комп, набрал программу с нуля и она сдалась. Стоит ли говорить о полученном кайфе?)
Я было написал сейчас у себя в блоге, но сайт упал, и запись потерялась :(
Поэтому напишу здесь кратко:
d[i][j] - это искомая макс. сумма, если набрали i цифр первому человеку, j - второму, и просмотрели первые i+j цифр входного числа.
Чтобы сделать переходы, надо заметить, что от того, кому мы отнесём текущую цифру, ничего потом не зависит - т.е. к значению в новом состоянии динамики прибавляем текущую цифру, умноженную на нужную степень десяти.
Можно было писать явное моделирование разломов: т.е. делаем такую функцию, принимающую сначала прямоугольник (0,0),(W,H), и список всех разрезов. Эта функция ищет среди всех разрезов подходящий (т.е. который начинается на одном ребре текущего прямоугольника и заканчивается на противоположном), и применяет этот разрез: вызывает себя от двух оставшихся половинок, передавая им тоже разрезы (для простоты обоим вызовам можно передать всё тот же список разрезов - ничего от этого не сломается).
Можно было подойти по-другому: как бы нарисовать эти разрезы на клетчатом поле WxH, и найдя количество компонент связности. Чтобы это делать, как уже говорилось, можно развоить координаты: скажем, сказать, что клетки с четными координатами - это дольки шоколадки, а остальные клетки - это "стенки", на которые вставать нельзя, если через них проходит какой-то разрез. Или можно было просто для каждой клетки посчитать четыре флага: можем ли мы из неё пойти вверх,вниз,вправо,влево. В любом случае, мы получаем в итоге карту поля, в которой надо найти количество компонент связности, что легко делается обходом в глубину/ширину.
Can anybody explain how problem E is solved please?
I'm using DP. The parameters are (index, player1 result, player2 result, nTurns for player1, nTurns for player2)
but I'm memorizing only on index and player1 result, as the rest can be calculated through those two. Player1 result is too large so i'm memorizing in map. Sure that gives me TLE on test case 14.
Try DP: d[nTurns1][nTurns2] = maximum_possible_sum. Note that we can rid of the other parameters: at current step d[nTurns1][nTurns2] we select whom to give (nTurns1+nTurns2)-th digit of the number. It's easy to understand that following strategy doesn't depend on current digits, so we can add 10^{n-nTurns1} * s[nTurns1+nTurns2] to the value d[nTurns1+1][nTurns2] to best answer if we give current digit to Homer. Similar formula is in the case of Marge. Select maximum of these two values to obtain value for current d[nTurns1][nTurns2].
Вопрос по задаче Д, тест 4, первый разлом. В условии написано:"Каждый разлом делит один кусок шоколадки на два непустых куска." и "Каждый разлом представляет собой параллельный одной из осей координат отрезок, проходящий от одной стороны куска до другой". Но этот тест противоречит написанному в условии, где справедливость?
тем что поле 5 на 5 и первое разбиение 2 1 2 5 что значит что разрез не делит на две части начальное поле и он не доходит до нижней части прямоугольника!
PS
Столкнулся с одной проблемкой: вобщем открывал код участников для взлома, всё нормально вроде, а у одного постоянно выдавало "You need a newer version of Adoube Flash (ну что-то в этом роде)"... в чем прикол? у всех остальных норма, а тут никак...
надо в списке задач "залочить" свою задачу (нажать замочек).
тогда после этого в комнате по нажатию ctrl + сданная задача у участника - появляется код задачи с кнопкой "взломать".
ответ aa@aa
~
The text say, Breaks are given in arbitrary order.
will some test case like this?
2 2 2
0 1 1 1
1 0 1 2
I make one more for loop to calculate by force, then i got an Accept.
напишу идею, считаем динамику dm[pos][u][k] -- максимальная сумма из первых pos цифр, из них гомер взял u цифр, мардж -- k цифр,
из dm[pos][u][k] вохможны два перехода :
1) если (u < n) обновим dm[pos + 1][u + 1][k] , через dm[pos][u][k] + 10^(n-u-1) * s[pos]
2) если (k < n) обновим dm[pos + 1][u][k + 1] , через dm[pos][u][k] + 10^(n-k-1) * s[pos]
s[] - данный набор цифр
ответ лежит в dm[2 * n][n][n]
Числа игроков после каждого из ходов:
0)0 0
1)1 0
2)12 0
3)12 3
4)12 34
3
000999
?
The input example:
1234
The total is: 12 + 34?
Thx:)
задача В забыл написать
"It is guaranteed that the set of breaks is correct, i.e. there is some order of the given breaks that each next break divides exactly one part of the bar into two non-empty parts.
Output n + 1 numbers — areas of the resulting parts in the increasing order."
N is at least 1, and you cant break it on empty parts!
Мне кажется публикация тестов не спортивна. Как-то это по-читерски - не думая просто взять и узнать тест.
Была одна задача которую я не мог решить в течение полугода - не сдавался никак последний тест :) Раз в неделю или в две недели я садился с листком бумаги и рисовал кучу тестов и много думал. В конце концов после одной "гулянки" я проснулся в 6 утра и мне пришло в голову исправление моего решения. Не одеваясь я включил комп, набрал программу с нуля и она сдалась. Стоит ли говорить о полученном кайфе?)
Гораздо интереснее узнать решения D,E пожалуйста откликнитесь
Я было написал сейчас у себя в блоге, но сайт упал, и запись потерялась :(
Поэтому напишу здесь кратко:
d[i][j] - это искомая макс. сумма, если набрали i цифр первому человеку, j - второму, и просмотрели первые i+j цифр входного числа.
Чтобы сделать переходы, надо заметить, что от того, кому мы отнесём текущую цифру, ничего потом не зависит - т.е. к значению в новом состоянии динамики прибавляем текущую цифру, умноженную на нужную степень десяти.
Задача D.
Можно было писать явное моделирование разломов: т.е. делаем такую функцию, принимающую сначала прямоугольник (0,0),(W,H), и список всех разрезов. Эта функция ищет среди всех разрезов подходящий (т.е. который начинается на одном ребре текущего прямоугольника и заканчивается на противоположном), и применяет этот разрез: вызывает себя от двух оставшихся половинок, передавая им тоже разрезы (для простоты обоим вызовам можно передать всё тот же список разрезов - ничего от этого не сломается).
Можно было подойти по-другому: как бы нарисовать эти разрезы на клетчатом поле WxH, и найдя количество компонент связности. Чтобы это делать, как уже говорилось, можно развоить координаты: скажем, сказать, что клетки с четными координатами - это дольки шоколадки, а остальные клетки - это "стенки", на которые вставать нельзя, если через них проходит какой-то разрез. Или можно было просто для каждой клетки посчитать четыре флага: можем ли мы из неё пойти вверх,вниз,вправо,влево. В любом случае, мы получаем в итоге карту поля, в которой надо найти количество компонент связности, что легко делается обходом в глубину/ширину.
I'm using DP. The parameters are (index, player1 result, player2 result, nTurns for player1, nTurns for player2)
but I'm memorizing only on index and player1 result, as the rest can be calculated through those two. Player1 result is too large so i'm memorizing in map. Sure that gives me TLE on test case 14.
What can I do? Thanks very much.
Вопрос по задаче Д, тест 4, первый разлом. В условии написано:"Каждый разлом делит один кусок шоколадки на два непустых куска." и "Каждый разлом представляет собой параллельный одной из осей координат отрезок, проходящий от одной стороны куска до другой". Но этот тест противоречит написанному в условии, где справедливость?
Ну и чему же конкретно он противоречит? Насколько я вижу, пример корректен.
тем что поле 5 на 5 и первое разбиение 2 1 2 5 что значит что разрез не делит на две части начальное поле и он не доходит до нижней части прямоугольника!
E doesn't deserve 2400
isnt there any editorial for this round?
https://codeforces.me/blog/entry/51247