Блог пользователя HolkinPV

Автор HolkinPV, 16 лет назад, По-русски
Доброго Вам утра, дня, вечера, ночи.
Приветствуем Вас на прекрасном рандомизированном контесте, который подготовила для Вас команда Саратов СУ 3 (Давтян Эдвард, Холкин Павел, Кудряшов Игорь). Сегодня вам предстоит поближе познакомиться с Валерами и Валериями и помочь им во всем, чего бы они не попросили. Надеемся на то, что соревнование Вам понравиться, ведь мы очень старались. Благодарим за помощь в подготовке контеста Артема Рахова, Юлию Сатушину и Валерия Дмитрия Матова. Кроме того отдельное спасибо компании ВКонтакте.

История нашей команды началась в этом году в летней школе "Дубки" и едва там не закончилась. Нас спасли Петрозаводские сборы, на которые мы и уехали из "Дубков". Как вы могли заметить по предыдущему предложению, у нас в команде два капитана: один капитан и один Кэп (всего два). Но несмотря на это, мы очень дружная и серьезная команда и у нас очень хорошо развит командный дух. Тем временем до начала соревнования остается совсем немного.

Всем участникам мы желаем успехов и высокого рейтинга!
  • Проголосовать: нравится
  • +41
  • Проголосовать: не нравится

16 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится
Желаю высокого рейтинга!
16 лет назад, скрыть # |
 
Проголосовать: нравится +4 Проголосовать: не нравится
Удачи всем  !!!!
Высокого рейтинга !!!!
16 лет назад, скрыть # |
 
Проголосовать: нравится +15 Проголосовать: не нравится
А че без меня фотка?=)
16 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится
Удачи всем !!!
16 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится -13 Проголосовать: не нравится
Удалить комментарий


16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Участники первого дива могут взламывать решения второго ?
16 лет назад, скрыть # |
 
Проголосовать: нравится -12 Проголосовать: не нравится
скажите а в задаче В точно стоят чекеры?
16 лет назад, скрыть # |
 
Проголосовать: нравится +12 Проголосовать: не нравится
Какие сегодня суровые претесты)
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
а ты здал задачу В?
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
В условии неоднозначно написано.Если мы  можем менять a на  b то можем ли мы менять  b на a?
  • 16 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +4 Проголосовать: не нравится
    "разрешено заменить символ Ai на символ Bi в любой из строк"
    "В следующих n строках заданы два символа Ai и Bi, (...), означающие, что разрешено заменить символ Ai на символ Bi"

    Где здесь неоднозначность?
16 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится
Буду очень признателен за претест 7 после окончания контеста :)
16 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится +5 Проголосовать: не нравится
лейтенант jaamaa жжот +22 / -2

16 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

Что-то у меня траблы со взломом.

Пишет посылка уже взломана, хотя 100 раз обновлял комнату, смотрел историю кода, там никаких взломов не показано.

У кого-то были такие проблемы?

Может из-за того что в моём тесте 20000 чисел? через Ctrl-C - Ctrl-V вбил, так как генератор не удалось отправить((.

16 лет назад, скрыть # |
 
Проголосовать: нравится +12 Проголосовать: не нравится
Когда открывал коды, то очень часто код не появлялся, была пустая страница.
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
У меня тоже была пустая страница один раз. Кроме этого, я не успел попытаться сделать взлом потому, что сервер был слишком занят. Это понятно, CF все еще beta, ну я надеюсь что сейчас, когда ВК спонсор CF, вам удасться все эти штуки исправить.
16 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится
А что сегодня такое с занятостью сервера?
Server is too busy now.
Не только сейчас, но и в конце кодинга были такие же баги, не получилось загнать задачу.
Вроде, в 28ом матче участвовало больше народу, но багов не было.
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
В C я написал дерево отрезков (да, наверняка тупое решение и сейчас свалится); сложность как бы O(n log n), но на самом большом тесте (100000 1000-ч) невероятно тормозило. В чём может быть причина? Не могу понять :/
16 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится
Is a tutorial available for this contest?
//It's funny! I know how to solve all problems except B!
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Бедный сервер, несладко ему сегодня пришлось:)
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
I got a presentation error on problem B for test 38. Can someone tell me why?
I have used a combination of printf and cout. Will that be a problem?
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Кто-то подскажет тест №9 по задаче B?
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
А что особенного у претеста №3 на задачу D?
16 лет назад, скрыть # |
 
Проголосовать: нравится +15 Проголосовать: не нравится
Отлично, 255-ое место. В следующий раз целюсь на 127-ое.
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Ух ты, как рейтинг у лидеров скакнул. Случайно не поменяли ли константы в рейтинге?
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
What's the test case 16 of problem C...
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Можно тест 11 задачи А. Спасибо
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Нашел классную багу, отмотайте в этом комментарии историю назад и смотрите что происходит с ответом на него
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Я единственный такой наивный мальчик, который писал LCA в D? =)

Хоть оно и прошло, но все же можно было обойтись куда более простым решением =( Не подумал я, что на этом серваке 1000 * 100000 прокатит. Где вообще можно характеристики системы глянуть? И описалово для компиляторов и все такое. И как например чужие решения валить? Я видимо совсем от жизни отстал, что не разобрался на контесте. Вот просто не нашел, как просмотреть чужое решение, и все тут.

  • 16 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    Нет, не единственный :) Все-таки где-то глубоко сидит, что решения >10^7 никогда не проходят :)
    • 16 лет назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится
      Ну а в итоге мое решение работает дольше лобового из-за лишних выделений памяти и всяческих рекурсий. Обидно даже. Столько кода, столько штрафа, столько дебага. А в итоге надо было не выпендриваться, а писать по-человечески... Все гениальное просто, пора уже вбить себе это в голову и придерживаться этого правила. И, кстати, ответов на вопросы мои ты не знаешь, случаем?
      • 16 лет назад, скрыть # ^ |
         
        Проголосовать: нравится 0 Проголосовать: не нравится
        Когда сабмитишь задачу и она успешно проходит претесты, ты можешь ее заблокировать, нажав на замочек возлее ее имени в списке задач. В этом случае ты можешь смотреть и валить чужие сабмиты по этой задачи, но ресабмитить ее самому уже нельзя. А чтобы посмотреть чужой сабмит надо зайти в список участников своей комнаты и даблкликнуть на квадратик, отображающий чей-то сабмит по этой задаче (там, где пишутся очки). Насчет описалова системы, вот FAQ.
  • 16 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    Вот эта задача заходит за квадрат: http://mirror.codeforces.com/contest/4/problem/C
    5*10^9 сравнений строк длины 32 почему-то выполнились за 4.4 секунды
  • 16 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    Я тоже lca написал :))
  • 16 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    Привет, Антон. Сто лет тебя не видел. 
    Нет, ты - не единственный. Я тоже написал LCA binary uplifting'ом. Мне это решение показалось наиболее очевидным. На топкодере была подобная задача с меньшими ограничениями и требовалось посчитать что-то другое. Но идея LCA там тоже была применима. Тут все немного сложнее, но в целом задача чем-то похожа.
    Чтобы не писать два поста: в задаче C я написал линейное решение без всяких умных структур данных. Подобное решение уже описано в этой теме.
    • 16 лет назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится
      А как расшифровывается LCA? Слишком много вариантов предлагает гугл, трудно сориентироваться)
    • 16 лет назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится
      Привет, Паша =) Да я же забросил это дело. Тут надо было поучавствовать, чтобы для молодых разбор провести. Все же полгода без решения задач на мне сказались =( Хотя надо заметить, что я поспокойнее стал решать и вести себя во время контестов, не торопился даже. А ты, я смотрю, молодец, растешь =) Думаю, тебе вполне по силам поехать на финал в этом году, ну и по Сибири занять 1е место, обойдя НГУ, хотя это будет тяжко =) А я уже не тот =) Вот, в лца натупил, за 1 секунду до конца только сдал =)
      • 16 лет назад, скрыть # ^ |
         
        Проголосовать: нравится 0 Проголосовать: не нравится
        Спасибо. Да, я тоже не тороплюсь на CodeForces, отношусь как к игре. Сидел, аккуратно писал задачи, тестил на парочке придуманных тестов и отправлял. Уже три или четыре раунда по этим правилам все задачи, которые посылаю заходят с плюса. Куда торопиться-то? Я даже пару раз отвлекался чтобы посмотреть что происходит в таблице, хотя на ACM контестах я себе такого не позволяю.
        А про полуфинал... Пусть время покажет. Да, по Сибири сейчас будет борьба трех ВУЗов: Novosibirsk SU, Tomsk SU, Tomsk PU. На интернет-туре ВСО мы победили, в следующем контесте можем проиграть. Главное, делать все, чтобы быть как можно выше.
        P.S. В Ижевске без тебя было заметно скучнее :)
  • 16 лет назад, скрыть # ^ |
    Rev. 2  
    Проголосовать: нравится 0 Проголосовать: не нравится

    А 1000*100000 проходило? Я например побоялся писать. Кроме LCA работало битовое сжатие. Для каждой точки захраним в каких окружностях она лежит и проксорим для ответа на запрос. Итого 1000*100000/32.

16 лет назад, скрыть # |
Rev. 6  
Проголосовать: нравится +4 Проголосовать: не нравится
Поскольку тут прозвучали идеи относительно решения задачи C, предложу-ка и я свое решение (линейное) :)
 Идея в следующем:
1. Если искомые префикс и суффикс пересекаются, то общая их часть остается с искомым знаком, и следовательно этот случай эквивалентен случаю когда взяты те же суффикс и префикс, но без общей части, например:
(s1 [s2 )s3 ] эквивалентно  (s1)s2[s3] (s1,s2,s3 - некоторые подпоследовательности).
2. Пусть сумма последовательности элементов A1 .. An равна S. Тогда при инвертации знаков получаем -A1, -A2 .. -An, а сумма соответственно изменяется на -S, то есть сумма чисел на отрезке при инвертации просто изменит свой знак.
3.Исходную задачу можно рассмотреть в таком ракурсе: нужно выбрать из последовательности непрерывную подпоследовательность (ту, что останется между префиксом и суффиксом), а вне ее инвертировать все числа. Тогда если сумма чисел всей последовательности равна S, а сумма выбранной подпоследовательности S1, то итоговая сумма даст -(S-S1) + S1 = 2*S1 - S  -  это и есть та самая величина, которую нужно максимизировать. S- постоянная, => нужно максимизировать S1, т.е. найти в заданной последовательности непрерывную подпоследовательность с максимальной суммой, а это делается линейно:
mx = 0;
for(i=0;i<n;++i)
{
sum += a[i];
if(sum < 0)
sum = 0;
mx = max(mx, sum); // исправил :)
}
Hope this will be useful :)
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
On problem B what is the expected answer for the input:
aaaa
bbbb
4
a b 1
a b 2
a b 3
a b 4
is it:
4
bbbb
or
10
bbbb
16 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится
Можно тест 10 на B ?
  • 16 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    У меня был неверный ответ на этом тесте из-за того, что ошибся во Флойде.
    for (size_t i = 0; i < LETTER_CNT; i++)
    for (size_t j = 0; j < LETTER_CNT; j++)
    for (size_t k = 0; k < LETTER_CNT; k++)

    Неправильно:
    ranges[i][j] = Min(ranges[i][j], ranges[i][k] + ranges[k][j]);

    Правильно:
    ranges[j][k] = Min(ranges[j][k], ranges[j][i] + ranges[i][k]);
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
What is the test input data of test 5 (problem C)?
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
On problem B,I have used :
// in the main function
if(strlen(sa)!=strlen(sb)){
       puts("-1");
       return -1;
}

Unfortunately, my code is always getting Runtime Error for test 3.
However, if  "return 0" replace "return -1", I get Accepted.
Why?
sorry for my poor English!Thanks!
16 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится +8 Проголосовать: не нравится
K (the number of queries) in problem D can be larger.
In that case, O(MK) solution will get TLE, and problem D can be a bit harder to get accepted.
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Можно посмотреть претест 5 по задаче E, please?
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
I noticed some of the scores are shown in blue after the final tests. Any ideas what does it mean?
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Скажите тест 3 на задачу D, пожалуйста.
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Can anyone plzz tell what problem c meant .. i couldnt understand it ..:(

thanks in advance
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
During the contest I coded wrong solution for B in Java, I didn't analyze the problem very well, but after the contest I tried the problem with the right solution in Java. I got Time Limit Exceeded. I tried every possible optimization in order to pass the test 26, but I couldn't manage it. I guess the reading input was taking the longest time. I used
BufferedReader br = new BufferedReader(new InputStreamReader(System.in);
Also, I tried reading the string byte after byte with using only InputStreamReader, but it was still TLE...
In the end I just copied my code in c++, changed some syntax in order to work with c++ and I got Accepted.

The thing I like to ask is whether some more experienced Java coder can tell me what is the most efficient reading input structure to use. I saw that there are accepted solutions in Java so every hint is welcomed.

Thank you in advance.
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Можно тест 4 на E пожалуйста?
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Hi! I did problem D but with a rather difficult solution. Can someone give me his/her solution or the official solution?
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
What is the test case 6 in problem E?
Test case 1 in final test of problem E is same as example test 1. Right or wrong?