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

Автор artew, 2 года назад, По-русски

Привет, Codeforces! 😇

Мы рады пригласить вас поучавствовать в Codeforces Round 932 (Div. 2), который состоится во 05.03.2024 17:35 (Московское время) 🔥 😱 🤩

Раунд был полностью подготовлен учениками ШЦПМ 💓 (Школы Центра Педагогического Мастерства): IzhitskiyTimofey, AndreyPavlov и мной. Тематикой всех задач послужит наша любимая школа 😈

Этот раунд будет рейтинговым для участников, чей рейтинг ниже 2100 😊 Участники с более высоким рейтингом могут принять участие вне конкурса 😋

Мы хотели бы поблагодарить 💕:

Вам будут предложены 6 задач и 2 часа на их решение! Мы постарались сделать для вас интересные, красивые, NP-полные задачи с сильными претестами 😁

Разбалловка: $$$500 - 1000 - 1500 - 1750 - 2500 - 3000$$$ ✨

Желаем всем удачи на раунде, а также мы бы хотели пожелать удачи участникам предстоящей Открытой олимпиады по программированию и РОИ! 🥇

UPD: Разбор

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

Div. 2:

  1. Sakura_lenlen

  2. keeping_practicing

  3. GiaVoNgu

  4. LJL_T

  5. yyyz04

Div. 1:

  1. tourist

  2. jiangly

  3. BurnedChicken

  4. m_99

  5. Sugar_fan

Мы извиняемся за дизбаланс нашего раунда, однако надеемся вам понравились наши задачи!

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

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

Another Div2 !! YAY!

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

Школа ЦПМ — лучшая школа России!

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

As a tester, I can assure you that all tasks are interesting and worth trying to solve.

Also GL to all participants :)

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

As a school cpm student i recommend you to participate >.<

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

As a top -1 contributor and tester of this round, I recommend you to participate in this round!

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

In my opinion, the round is high-quality and has pleasant tasks.

Good luck to all participants!

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

As a tester I highly recommend you writing this round!

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

As a tester, i declare, that this contest is by far the best. Good luck everyone!

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

As a tester, I have enjoyed solving problems, and I hope the participants will enjoy it too!

GL HF!!! (◕ω◕)

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

don't trust these guys

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

finally a non-interactive round <3

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

yo

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

As a tester, I think everyone should write this quality round

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

Will the contest have interactive problems??

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

Hope Um_nik can solve problem C.

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

Why is this not on the home page yet? This post would definitely decorate the home page with all these cute emojis!

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

Hope to solve A and B in this round

Good Luck for every parcipicant!

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

Dahm the post is so wholesome

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

One of the most beautiful announcement ever!

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

emojiforces

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

What is NP complete problems

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

I also love penguins UwU.

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

orz penguin round !!! 

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

orz penguin round!!! 

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

Hope to see myself cyan!!

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

Seems like SpeedForces looking at the score distribution

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

Пацаны, и вам удачи на Открытой олимпиаде по программированию!

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

Emojis spoiled a very good blog :(

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

as always hope for interesting and SHORT STATEMENT problems!

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

As best pop singer in Russia, i recommend you to visit my concerts (and ofc participate in this round)

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

this post so cutee XD

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

Why the announcement looks like copy pasta of instagram's comment section

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

As a participant, I hope to get expert back, but from a div $$$2$$$ this time.

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

bro used all his recently "used" emojis from his phone

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

Legends say you'll turn gay after this round :v

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

need to see authors' faces to know if this contest is reputable

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

Can you make it a dating contest(blog has some lovey dovey emojis ) aviralarpan3301 any suggestions?

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

Please upvote, thanks.

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

Hoping to improve Problem solving skills.

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

I wish the authors made us some easy C problems this time

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

I hope everyone gains some rating this round! (even if its impossible)

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

is it just me or have Div2 contests become harder ;-;

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

I wish the problem-setters specified that messages can be sent in any order in problem C.

It took me an hour and 3 WAs to realize that I was solving a much more difficult version of the problem.

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

C and D should be swapped

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

Problem c seems like binary search..

any hints?

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

D <<< C

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

Thanks!

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

C>D for me..

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

    Is c a dp problem

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

      C was greedy with heap. You can simplify the summation into sum(api) + max(bpi) — min(bpi) and brute force all pairs of bp, adding the smallest apis in the range of [min(bpi), max(bpi)] until you can't add anymore without going over l. It can be done with a max heap.

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

      There is a fairly straightforward greedy solution.

      Re-order the messages so the values of $$$b$$$ are sorted in ascending order.

      Then if you want to pick $$$k$$$ messages in the range $$$[i, j]$$$, the minimum cost is just $$$|b_j - b_i|$$$ + the $$$k$$$ smallest values of $$$a$$$ in the range. Note that for a fixed $$$i$$$, this cost increases as $$$j$$$ increases.

      So we can start from each $$$i$$$ and iterate on $$$j$$$ and putting the values of $$$a_j$$$ in a multiset $$$S$$$. Then just remove the largest values from the set as long as $$$\sum_{x \in S}{x} + |b_j - b_i| \leq l$$$ and your answer is just the maximum number of values remaining in the set for any $$$[i, j]$$$.

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

    D is basically math where you can solve in O(1) memory limit.

    The key equation is: (c+1)(c+2)/2 — each pair that will kill a number + pairs that kill two numbers.

    To calculate each pair that will kill a number, you find the pairs you can put to its left + the difference between that number and c.

    x-y and x+y will be either both even or both odds, so to find the number of pairs that kill two numbers, record the number of even and odd numbers and the calculate the pair combinations of each: ans+=(ll)((even-1)*(even)/2); ans+=(ll)((odd-1)*(odd)/2);

    The overall math would be this ten line code 249815852

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

This may sound like an excuse, but I spent much time trying to login to facebook

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

Damn I got pranked hard by C xd

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

Can someone explain why n^2logn solution fails for C for the given submission? https://mirror.codeforces.com/contest/1935/submission/249797192

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

C > D

D is some high school mathematics and I worked it out within 10min after a lengthy, failed debugging session on C. Yes, I did read C and D at the same time. The reason why I didn't try D earlier was that I got an idea for C that works in O(n^2) but is very implementation-heavy, and eventually I did not get C.

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

In problem F, how do you create a valid set of edges in the $$$cost = (degree - 1)$$$ case?

The $$$cost = degree$$$ case seems much easier since for each [min_node, max_node] subtree range you can just sort the ranges in increasing order of min and then for each range except the first add an edge from [min_node — 1, min_node] ([min_node — 2, min_node] for the edge over $$$v$$$) to produce a valid tree.

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

    I manage to solve these cases with $$$O(n)$$$ constructive method.

    The case with no subtree ranges $$$[min_{node}, max_{node}]$$$ that $$$min_{node} \lt v \lt max_{node}$$$ is simple, otherwise denote the maximum value of $$$max_{node}$$$ from such ranges by $$$MAX_{node}$$$.

    Then for each rage $$$[min_{node}, max_{node}]$$$ with $$$min_{node} \lt v$$$, add the edge $$$(min_{node} -1, min_{node})$$$ if possible. And for each range with $$$min_{node} \gt v$$$, add the edge $$$(max_{node}, max_{node}+1)$$$ if possible or otherwise add the edge $$$(MAX_{node}, MAX_{node}+1)$$$.

    The correctness can by roughly explained. The ranges with $$$min_{node} \lt v$$$ except for the leftmost one connect to a left one. The ranges with $$$min_{node} \gt v$$$ connect to a right one, or connect to a range that pass through $$$v$$$. Thus all the ranges head to the leftmost one and the result graph forms a tree.

    You can check my submission for more details.

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

Problem C was harder than D. Spent most of the time in C.(T_T)

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

Super Fast Editorial!!

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

I had trouble solving B even after getting the correct logic.

I thought the array can be divided in 2 parts always if there was an answer. I calculated the MEX of the whole array. Now I divided the array in two parts of size i(left array) and n-i(right array), where 1<i<n . I updated the MEX of the left and right array in each loop and if they were equal printed the indices. Here is my code, can someone help :

#include <bits/stdc++.h>
using namespace std;
using ll=long long;

void solve(int tt)
{
    ll n,x;

    cin>>n;
    ll a[n];

    map<ll,ll>mp;

    for(ll i=0;i<n;i++)
    {
        cin>>a[i];
        mp[a[i]]++;
    }

    ll mex=n;
    for(ll i=0;i<n;i++)
    {
        if(mp.find(i)==mp.end())
        {
            mex=i;
            break;
        }
    }

    ll mex2=0;
    for(ll i=0;i<n;i++)
    {
        if(a[i]==mex2)
        {
            mex2++;
        }

        mp[a[i]]--;
        if(mp[a[i]]==0 && a[i]<mex)
        {
            mex=a[i];
        }

        if(mex==mex2)
        {
            cout<<2<<endl;
            cout<<"1 "<<i+1<<endl;
            cout<<i+2<<" "<<n<<endl;
            return;
        }
    }
    cout<<-1<<endl;
}

int main()
{
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    int T=1;
    cin >> T;
    for(int tt=1; tt<=T; tt++)
    {
        solve(tt);
    }
    return 0;
}
»
2 года назад, скрыть # |
Rev. 24  
Проголосовать: нравится 0 Проголосовать: не нравится

nvm idk how to prove shit

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

Too hard for C. I get stuck for more than half an hour, then I just solved it using two segment trees.

Update: no need for segment trees, because when you calculate the range from i to j, you only need to take k-st minimum value, no requirement it must contain the ends. (Since if it does not contains the end, all of them will also appear in the smallest range)

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

I think you should have swapped D and C. Nevertheless, tasks were very interesting

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

I think latest trend is difficulty of D is less than C in div2. And System testing just after contest. :)

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

is Div2 start getting harder ?

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

Thanks for the contest, enjoyed all the problems.

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

Me after solving B:

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

Common in recent contests :

  1. Fast editorial
  2. Fast system testing
  3. difficulty of D is less than C.
»
2 года назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

By By Expert

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

Как я должен был понять, что в задаче С порядок сообщений можно менять... Об этом ни слова не написано в условии

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

I think D is easier than C problem.

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

[Deleted]

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

задачи огонь, особенно понравился Центр Помощи Мамам

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

why is this round listed as unrated in my profile even though this post says rated? do i need a rating before this contest?

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

C is harder than D, but the score of C is lower than D.

Maybe I will never become a Candidate Master. :(

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

Great contest! Thank you.

My only comments are

  • It was not very clear that $$$p$$$ doesn't have to be increasing in problem C
  • Problem D is easier than usual
»
2 года назад, скрыть # |
 
Проголосовать: нравится -8 Проголосовать: не нравится

C is harder than D, but the score of C is lower than D.

Maybe I will never become a Candidate Master. :(

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

It was a great contest. Problem D was a bit easier than C (even had more accepts) which was great because it teaches us to not get stuck on a problem and always remember to read the next ones. (and yes I made that mistake too) Thanks for the effort to make this great contest!

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

Can anyone please elaborate the solution to Problem:C by using Dynamic Programming ..

DP[i][j] — Minimum time required to choose any subsequences of Messages in [0...i] such that the corresponding length is 'j'..

At the end , the final answer is to find the Maximum length (LEN) for which there exists atleast one 'i' such that it satisfies the inequality : DP[i][LEN] <=l .

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

No more contests lined up after this, what am I supposed to do now lol? I knew there were an awful lot of contests in February, March is going to be dry.

I will try to touch some grass this month, and maybe go on a hike.

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

Great problems. Enjoyed E the most.

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

people found C harder than D, but I found D much harder.

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

No upcoming rated contests :-(

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

If it is kept swapping problem C with problem D, it will eventually increase the ability to solve problems with D difficulty during contest. Thanks for doing that.

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

Any idea why the problem ratings have not been updated in so long? I still have no idea if the problems I failed to solve were genuinely hard or I am just a noob.

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

..

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

I want to try.