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

Автор pipipzz, 10 лет назад, По-английски

Hello, I have been doing competitive programming for almost 2 years and I have decided to participate in ACM ICPC this year. Since there are so many questions on so many online judges, I do not have much time to solve questions randomly. I want to systematically prepare for ICPC, practicing every topic and each type of questions in that topic. How do I do that? How should I select the questions so as to cover maximum variety and techniques? Where do I study advanced topics like Heavy-light decomoposition, DP with broken profiles, etc? Any help would be highly appreciated. Thanks.

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

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

Solve every problem you meet.
It works.

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

practicing every topic and each type of questions in that topic — then you should solve every problem:)

I may be wrong, but i don't think that studying Heavy-Light, broken profiles etc is good idea for you, until you are facing problems with much, much easier tasks and algorithms (otherwise why are you so far from div1?).

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

    When should we assume that we are ready to start topics like Heavy-light,broken profiles etc. ?

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

      Personally, I learnt all topics when I prepared for OIs in high school.

      But learning things like heavy light, broken profiles does not help much in contests. Usually when faced with such problem, you will just see that it will take too much time to solve and it's wiser to ignore that problem to focus on others.

      So, whether to practice on advance topics depend on your goal:

      • If you want to solve problems for the enjoyment of it, go ahead and have fun with hard topics.
      • If you want to do well in contest, focus on what you can improve right away: solving easy to medium problems flawlessly.
»
10 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

@LeBron : Thanks. I get it.

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

I honestly don't know about "every" problem.

I assume you are talking about ICPC regional contest, rather than World Final.

Each region has very different style. For example, my region usually does not have very difficult algorithm problems. At most CodeForces Div 2 D. But our region has troublesome coding problems. example This can be solved using simple graph algorithm, but it's very easy to make mistakes, and time consuming. Typically we have to solve at least 7 out of 8 with small penalty to win the region. We must have strong implementation skills than knowledge of algorithm.

At the same time, my friend in China says that her region in China contains a bunch of hard algorithm/math problems and solving half of problem set is huge achievement.

Learning difficult algorithm problems such as Div 1 C, D, E here won't help me do well on my region, just like learning to implement nasty problems won't help her much either. (Btw I love codeforces. I'm just saying it's not similar to ICPC in my region!)

I think it's really important to see what kind of problems you are going to see in ICPC, and train for those.

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

Don't wanna be rude, but I think that there are a lot of things that you have to learn before studying things like HL Decomposition and similar.