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

Автор vovuh, история, 7 лет назад, перевод, По-русски

<copy-pasted-part>

Привет! В 07.03.2019 18:05 (Московское время) начнётся Codeforces Round 544 (Div. 3) — очередной Codeforces раунд для третьего дивизиона. В этом раунде будет 6 или 7 задач (или 8), которые подобраны по сложности так, чтобы составить интересное соревнование для участников с рейтингами до 1600. Наверное, участникам из первого дивизиона они будут совсем не интересны, а для 1600-1899 покажутся простыми. Однако все желающие, чей рейтинг 1600 и выше могут зарегистрироваться на раунд вне конкурса.

Раунд пройдет по правилам образовательных раундов. Таким образом, во время раунда задачи будут тестироваться на предварительных тестах, а после раунда будет 12-ти часовая фаза открытых взломов. Я постарался сделать приличные тесты — так же как и вы буду расстроен, если у многих попадают решения после окончания контеста.

Вам будет предложено 6 или 7 (или 8) задач и 2 часа на их решение.

Штраф за неверную попытку в этом раунде (и последующих Div. 3 раундах) будет равняться 10 минутам.

Напоминаем, что в таблицу официальных результатов попадут только достоверные участники третьего дивизиона. Как написано по ссылке — это вынужденная мера для борьбы с неспортивным поведением. Для квалификации в качестве достоверного участника третьего дивизиона надо:

  • принять участие не менее чем в двух рейтинговых раундах (и решить в каждом из них хотя бы одну задачу),
  • не иметь в рейтинге точку 1900 или выше.

Независимо от того являетесь вы достоверными участниками третьего дивизиона или нет, если ваш рейтинг менее 1600, то раунд для вас будет рейтинговым.

Спасибо MikeMirzayanov за платформы, помощь с идеями для задач и координацию моей работы. Спасибо моим очень хорошим друзьям Михаилу awoo Пикляеву, Максиму Neon Мещерякову и Ивану BledDest Андросову за помощь в подготовке и тестирование раунда.

Удачи!

Также хочу сказать, что участники, намеренно отправляющие неверные решения и взламывающие их после окончания соревнования (пример), не будут показаны в таблице лидеров по взломам.

</copy-pasted-part>

UPD0: Я также хочу поблагодарить Stresshoover, dreamoon_love_AA, budalnik и nhho за помощь в тестировании раунда!

UPD1: Разбор опубликован!

UPD2:

Поздравляем победителей:

Место Участник Задач решено Штраф
1 MoNsTeR_CuBe 7 340
2 try_agian 7 370
3 HurmousDay 7 396
4 AyaOtonashi 7 404
5 mohanraghug 7 437

Поздравляем лучших взломщиков:

Место Участник Число взломов
1 greencis 72:-31
2 jhonber 30:-1
3 celesta 16:-3
4 Milkdrop 22:-15
5 MarcosK 12:-5
Было сделано 269 успешных и 316 неудачных взломов.

И, наконец, поздравляем людей, отправивших первое полное решение по задаче:

Задача Участник Штраф
A friendly_potato 0:02
B OFAKMKOFZ 0:04
C Mbah1937 0:03
D AyaOtonashi 0:08
E nvwa 0:22
F1 elevendigit 0:15
F2 G_MIHAI 0:21

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

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

Div 3! Must be the time for high rating!

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

Please make Div 3 rounds as frequent as Div 2. It is really good from the competition point of view. Otherwise Div 2 rounds include upto 2100 rated competitors on the ranklist which push coders like me to the bottom of the ranklist. Its really hard to even get to the top 1000

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

I am really excited about my first unofficial contest.

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

6 | 7 | 8 = 8 . only 6 r enough

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

This round will be much easier than the previous one :) At least, I hope so...

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

I hope there will not be any misbehaviour from the community side this time. :D

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

Is there any possibility to make contest duration 2:15 or 2:30 ?vovuh BledDest MikeMirzayanov

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

I already had a rank of 1900, so the round is not ranked for me?

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

Standings are showing that this its rated for me..I've become expert in previous education round... Figure it out please..

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

I liked problem D, it's very creative.

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

What is testcase # 37 in D?,..T_T..

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

Hi. I forgot to adjust registration types (official-unofficial) after the educational round rating update. Sorry, I'll fix. Is it good idea to exclude from rating those, who should be official but was indicated unofficial incorrectly? They can be sure that they are unrated and solve problems carelessly.

P.s. I'll fix from Oman. I'm in a trip now.

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

Why is the following output incorrect for problem F1 example 3?

1 2

1 6

2 3

2 5

2 7

3 4

5 6

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

What is pretest 5 in D ?

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

What can be the test-case 35 of problem F2

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

My solution of D passed in C++17 but gave wrong answer in C++14. Can anyone explain why? submitted in C++14 : https://mirror.codeforces.com/contest/1133/submission/50944202 submitted in C++17 : https://mirror.codeforces.com/contest/1133/submission/50953520

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

Test Case 5 in D? Kept getting WA. I kinda knew my solution wouldn't work. But there was a probability it would. CODE

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

How to solve F2 ? My approach — run dfs to find all articulation edges in the graph with one of the ends as vertex 1. Let this be art(1). If degree(1) < d , then straightaway answer is NO. If art(1)> d, then again answer is NO. Otherwise, include all neighbouring vertices of 1 connected via articulation edges and remaining d-art(1) vertices from left out neighbours and simply run bfs. However, this seems to give WA on test 16.

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

Please Makes me official. <3

My rating is below 1600.

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

What is test case 58 of E? :/

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

Task D:

Attempt 1: eps = 1e-4; WA

Attempt 2: eps = 1e-7; WA

Attempt 3: eps = 1e-9; WA

Attempt 4: eps = 1e-18; WA

Attempt 5: eps = 1e-18; WA

Attempt 6: eps = 1e-25; WA

Attempt 7: eps = 1e-300 AC

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

Can we really use map with double index ?

I thought that this is why I'm getting WA so I tried using Gcd

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

F2 was perfect

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

Microsoft Visual Studio 2010 hasn't the "long double",I can't accept the problem D!!!!! My attitude booms !! And I feel very unfair!

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

It was one of the coolest Div.3 rounds i've seen! Thanks a lot to creators!

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

How to solve E?

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

Q-D my answer works similar to other c++ users but I am getting TLE i am even using pypy, any optimization suggest, please!

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

Problem C: int arr[]=new int[size]; // getting Time limit exceeded vs Integer arr[]=new Integer[size]; // working perfect

why??

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

I loved problem D, it was extremely innovative.

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

Я не знаю, читал ли vovuh мой пост про сложность, но сегодняшний div3 явно был гораздо ближе к третьему дивизиону по сложности, чем предыдущий. Спасибо.

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

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

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

surely the best div3 round ever!!

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

Again failed to cross 1200. "APNA TIME AAEGA"( My time will come).

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

how to solve f2?? i am getting wrong answer on test case 35,here is my submission https://mirror.codeforces.com/contest/1133/submission/50987588

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

Why grid approach doesn't work for E ?

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

Can someone elaborate on dp approach E, what does i and j means in dp[i][j]?

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

For problem E : Many solutions have failed on TC:58 if they have used greedy approach i.e.,for each k, calculating maximum length of range for which given condition is true( using binary search ) and then adding them.

code which failed on TC 58 : https://mirror.codeforces.com/contest/1133/submission/50976279

This approach is wrong because it is possible to obtain even higher number.For this we need to apply concept of DP.

for eg: consider TC : n=8, k=2, array a={ 3,5,5,5,5,9,9,13 }

By using greedy approach, we get maximum length for k=1 as 6 for {5,5,5,5,6,6} and then for k=2 (i,e., after removing elements from i=2 to i=7) we get maximum length as 1 (for 3 or 13).

so total number of students using greedy approach = 6+1=7.

But this is not most optimal as the best way is

for (k=1) take range as {3,5,5,5,5} = 5 for (k=2) take range as {9,9,13} =3 so total number of students using optimal approach = 5+3=8.

So DP approach (correct approach) :

Tabulate a dp[i][j], ( we will use bottom up approach i.e., first kth team filled then (k-1)th and so on...)

where dp[i][j] --> maximum total number of students included till now (i.e.,from team 'k' till team 'j') such that jth team is filled with val[i] and (j+1)th team is already filled with optimal value(computed in bottom up approach ).

dp[i][j] can be obtained by using the forumula

dp[i][j]= val[i] + max( dp[ i+ val[i] ][j+1], dp[ i+val[i]+1 ][j+1],......,dp[n][j+1] );

where , val[i] denotes length of longest range for which condition is true from ith index. i.e., for array a={3,5,5,5,5,9,9,13} val[]={5,6,5,4,3,3,2,1}

val[] can be precomputed using binary search in O(NlogN).

ans= max ( dp[i][1] ) for i=1 to n.

Time complexity : O(n*k + nlogn) for bottom up tabulation and precomputation of val[].

ACCEPTED Code : https://mirror.codeforces.com/contest/1133/submission/50989079

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

I just noticed a test in A contradicts what was said in the description

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

    the 23:59 00:01 one because the description said the competition happenned on the very same day

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

      It does happen on the same day, it starts at 00:01 and ends at 23:59. Its total duration is 23:58, and half of it is 11:59. Therefore, the middle of the contest happens at 00:01 + 11:59 = 12:00. It would be incorrect if it was 23:59 and 00:01, but it is 00:01 and 23:59 (notice that the order does matter in this case).

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

      I assume you are talking about the 5th test case for problem number one. It is : 00:01 23:59 and not 23:59 00:01.

      It is clearly mentioned in the question that the first time denotes the start and the 2nd the end time of the contest, considering this the input it valid.

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

For problem F1, I've used Kruskal's algorithm but picking all edges coming out of the maximum degree vertex first and then add other edges which satisfy the spanning tree property.

This resulted in a TLE. Time complexity for the code I have written (in PyPy 3.5) is O(m+n). How can this be improved?

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

See to the rankings where trusted participants include people above 1600 ratings

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

When will the system testing start? Can it finished before the next compitetion

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

Hello everyone, I am quite new to Codeforces, I tried to submit solution to problem C, after seeing top submissions but I am getting TLE from the same logic in JAVA. Can anyone help me.

My code: http://mirror.codeforces.com/contest/1133/submission/50999444

The code I referred: http://mirror.codeforces.com/contest/1133/submission/50935270

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

i have waited system testing for 2 hour :(

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

can anyone tell me what is wrong in my code it is giving wrong answer for test case 4. i have just iterate it over all the edges Your text to link here...

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

Can anyone please tell why I am getting TLE in My solution. https://mirror.codeforces.com/contest/1133/submission/50969866 The time limit given in this question was 2 sec.

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

I want help in question D(Zero Quantity Maximization) can somebody give me a hint for the problem

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

В задачах С и Е, можем ли мы бинарным поиском находить для каждого a[i] первый элемент, который строго больше a[i] + 5(или к), и считать дистанцию между элементами? O(nlogn), должно сработать.

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

what wrong in my code of B 50962881 it failed on test case 22

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

Can someone help me understand why my code is giving RUNTIME ERROR on test case 18 in problem F1? http://mirror.codeforces.com/contest/1133/submission/50972145

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

editorial plz

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

How to solve E?

My solution: Find the team with the maximum number of students and then remove those students from the vector. Repeat until all students are in some team. Then pick the largest k teams. But it gives WA on test #52

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

Can F2 be solved by finding articulation edges / bridges in the graph and as soon as we find bridge edge we merge them and after that we pick any random adjacent edges of vertex 1 so as to make its degree exactly d. and after make the whole tree connected using kruskal type algorithm? Here is my submission for reference of what i am talking. Pls tell if i am wrong. Thanks

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

Hi! Please tell me what's wrong with my solution to problem E. I've used two pointers approach. CODE

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

Why there isn't any tutorial for this round and I want someone to explain problem E dp approach