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

Автор Serega, 13 лет назад, По-русски

Всем привет!

14 ноября, 19:30 MSK состоится Codeforces Round #212 (Div. 2), который был подготовлен коллективом авторов из Саратовского государственного университета в составе: Артем Седанов (FunkyCat), Сергей Сухов (Serega), Ольга Чикатуева (Helga), Дмитрий Зайцев (My-my).

Выражаем благодарность координатору раундов Геральду Агапову (Gerald) за полезные советы и Марии Беловой (Delinur) за перевод условий на английский язык.

Всем удачи и высокого рейтинга!

UPD1. В раунде будет использована динамическая система оценки сложности задач (см. здесь).

UPD2. Разбор задач опубликован здесь.

UPD3. Рейтинг обновлен. Поздравляем победителей, решивших по 4 задачи:

  1. CleRIC

  2. i_must_learn_matan

  3. Dshavn

  4. gzh1998n

  • Проголосовать: нравится
  • +115
  • Проголосовать: не нравится

»
13 лет назад, скрыть # |
← Rev. 4  
Проголосовать: нравится +61 Проголосовать: не нравится

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +16 Проголосовать: не нравится

И вновь увеличивается количество раундов, проведенных авторами с префиксом Sere

»
13 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Sereja's round :D Hoping for a good increase again !!! Good-luck to all ...

»
13 лет назад, скрыть # |
 
Проголосовать: нравится -6 Проголосовать: не нравится

Я бы даже сказал, авторов, удовлетворяющих regex-шаблону "Sere\wa"

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +8 Проголосовать: не нравится

Hope that we have an interesting contest. ^^

»
13 лет назад, скрыть # |
 
Проголосовать: нравится -21 Проголосовать: не нравится

Динамика — это интересно!

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +8 Проголосовать: не нравится

Problem statements of previous Serega's contest were horrible! I hope problem statements will be easy to understand!

»
13 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

А как же "По мнению авторов, задачи расположены по неубыванию сложности"? :(

»
13 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

I hope the problems will short for understand :)

»
13 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Извеняюсь за глупый вопрос, я решил задачу "B", заблокировал ее. И теперь хочу взломать чье нибкдь решение.

Через "Положение" смотрю тех участников которые решили эту задачу и заблокировали ее. Когда я открываю ее, там например написано:

Претесты пройдены [претесты] → 5103228

что нужно сделать что бы попробовать взломать решение?

Когда нажимаю на ссылку "5103228", то нечего не происходит.

Может я что то не так делаю?

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +23 Проголосовать: не нравится

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +36 Проголосовать: не нравится

Зачем так гробить задачи?

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

It seems that the final judge in this contest is not sorted by submitting time !

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +4 Проголосовать: не нравится

Неужели все — таки чем ниже рейтинг проблемсеттеров, тем выше сложность задач в Div2 — Only?

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +15 Проголосовать: не нравится

Problem C and Problem E. Waiting eagerly for their editorial. Especially E, that was really beautiful.

»
13 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Problem D can be solved with Union-Find, right?

»
13 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

This indeed was a fun contest. Problems were nice, they were composed in a way that it would be likely for contestants to make some mistakes which later could be hacked. :) Can anyone tell if third problem was solvable with a segment tree. That may not be the optimal way, but I guess it would pass.

»
13 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Подскажите, в задаче А можно было заполнить две матрицы для каждого коня соответственно(1 — конь будет в данной позиции, 0 — нет), разбив матрицу на четыре подматрицы (начиная с положения коня) int k = 0; for(int i = x;i <= 8; i += 2, ++k){ if(k % 2 == 0) for(int j = y + k * 2;j <= 8; j += 4) f[i][j] = 1; else for(int j = y;j <= 8; j += 4) f[i][j] = 1; }

и потом сравнить как нибудь так?

bool merge = false; for(int i = 1;i <= 8; ++i) for(int j = 1;j <= 8; ++j) if(f1[i][j] == 1 && f1[i][j]== f2[i][j] && map_[i][j] != '#') merge = true;

  • »
    »
    13 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    Нужно было посчитать количество ходов(а конкретней — четность этого количества) для достижения каждой клетки. В одну и ту же клетку нельзя попасть с разной четностью количества ходов — следует из особенности возможных ходов. Если два коня могут попасть в не закрашенную клетку с одинаковой четностью ходов, то ответ, очевидно, 'YES' — недостающие для какого-то коня ходы мы можем делать, двигая его туда-сюда, не теряя четности.

  • »
    »
    13 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    Один из вариантов — поиск в ширину, подобно решению задачи http://informatics.mccme.ru/moodle/mod/statements/view3.php?id=255&chapterid=163, для удобства используем четырёхзначные числа, как маски, обозначающие взаимное расположение коней (пускай у нас число abcd. a,b — координаты первого коня, c,d — координаты второго) и просматриваем все возможные переходы из начальной маски. Если среди всех найденных масок будут числа вида xyxy, то ответ, очевидно, YES, иначе — NO. Решение не отсылал, но, судя по ограничениям, должно работать.

    Впрочем, надо отметить, что в данной ситуации возможны и частные решения, как, например, решение demolishka.

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +13 Проголосовать: не нравится

Most of the solutions for problem B got accepted only because of pure luck. Solutions that use:

if(s[0]==1||s[m-1]==n)
{
    cout<<"NO\n";
    return 0;
}

should get 'Runtime error' becase m can be 0 :).

»
13 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Good Problem set, with the wonderful dynamic scoring :) #loved it

»
13 лет назад, скрыть # |
 
Проголосовать: нравится -10 Проголосовать: не нравится

Мне понравились задачи, спасибо автору. Жаль, 20 минут не мог найти багу в С: if (a[j] < a[i]) d--; (вычитал на одну инверсию больше, чем нужно) — лишняя строчка, без неё AC в дорешке.

Что касается Е — ну, поток и поток. Это не какой-то сверхсекретный или сверхсложный алгоритм. Я, будучи во втором диве, знал его. А по бложикам, периодически всплывающим на форуме на эту тему, можно понять, что и многие другие из второго дива также его знают. Ну и в конце концов, не всё же лёгкие алгоритмы писать.

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

in problem B, for the simple test case 1 1 1, which means that he does not have to make any move. My code gives output "YES", i.e. it is reachable, but the answer is "NO", why? I still think the answer should be "NO", for he managed to reach the nth stair. please help me understand if i am going wrong.

»
13 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

задачи понравились!спасибо за контест!

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

Баг? Цвет — фиолетовый, а рейтинг — старый (1669)?

Пруф

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится

In problem A, I tried marking every position K1 can go in matrix a,and every position K1 can go in matrix b. Then I checked for every post if(k1[i][j] && k2[i][j] && original!='#') . why did this algo gave wrong answer in test case 7?

»
13 лет назад, скрыть # |
 
Проголосовать: нравится -9 Проголосовать: не нравится

UPD4: Ratings is fucked!

»
13 лет назад, скрыть # |
 
Проголосовать: нравится -14 Проголосовать: не нравится

k = 0; new_rating = old_rating + k;

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +17 Проголосовать: не нравится

In problem B, problem statement says, "The second line contains m different space-separated integers...". But actual test cases did not have the second line if m = 0. That's reason why many answers written in script language got RE.

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

Ratings are back ... yeyy, +168.

»
13 лет назад, скрыть # |
 
Проголосовать: нравится -6 Проголосовать: не нравится

In problem C n^2 solutions have passed but my (n^2)(lg n) gave tle. :( . It passed the test case with n=4500 but gave tle with n=5000.

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

Does any one except me used DFS for A ?!

I didn't understand the main solution but simulation worked perfectly ;)

Code

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

I fail in the most simple test case, a graph with one node.

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

question of problem C: the third test data: 5 1 3 0 4 2 It can swap(0,2) to get '0 3 1 4 2',so this premutation only needs 3 times of 'swap',but why the standard answer is 4 ?

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +4 Проголосовать: не нравится

It would have better if pretests had less details especially at problem B like dirtiness of first or last stair ...

»
13 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Пожалуйста можете объяснить один пример input 1 ...#...# ........ .#...K.. ........ ...#...# ........ .K...#.. ........ output YES Я не могу понять почему YES ведь клетка в которой они могут встретиться одновременно считается "плохой". Надеюсь на вашу помощь

  • »
    »
    13 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    Они могут встретиться в клетке, где стоит один из коней, а клетки где стоят кони — хорошие

»
13 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится -8 Проголосовать: не нравится

These problems seem too hard for div2.

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

Все прекрасно :)

  • »
    »
    13 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    Разбор опубликован, ссылка на него приведена в посте. А код решений вы вполне можете посмотреть в статусе, в посылках участников.

»
13 лет назад, скрыть # |
 
Проголосовать: нравится -8 Проголосовать: не нравится

а почему в задаче А на этот тест программа должна выводить "YES" ?

1 ...#...# ........ .#...K.. ........ ...#...# ........ .K...#.. ........

  • »
    »
    13 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    На первом ходу полукони переходят в "плохую" клетку (5,4), а на втором вместе двигаются в одну из клеток, соответствующих начальному положению полуконей.