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

Автор Radewoosh, история, 7 лет назад, По-английски

OK, this might be a bit strange. Many people ask others "How to become a better programmer?", "How to become red in two weeks?" or "Can somebody explain to me the solution to problem B?" under the editorial with a beautiful explanation to problem B. My question will be a bit different.

It'll be about marathon problems, especially about Marathon Matches. I'm not so bad at it, I've been the best in my problem in Deadline24 eliminations a few times or so, but I'm much worse on long contests. Now, it looks almost impossible for me to win a Marathon round. I'm not sure how should I practice, there are many ways to practice normal CP, but marathons are different. You have to spend a lot of time on one problem to produce a good enough solution. Also, I don't know what am I missing — bad idea, implementation details, wrong temperatures (I'm still not sure if I anneal correctly) or if my code is simply too slow to check enough options?

So, is there any list of tips from people who are for example Red on TopCoder or are regular Marathon finalists? Some ways to know what am I doing wrong? Or maybe even some tutorials? Psyho, Milanin, mugurelionut, wleite, CatalinT, how did you guys become so good?

And yes, here it is, Radewoosh getting back to basics and asking for tips :P

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

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

Just solve more problems.

Btw, title is clickbait af, downvote

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

Red asks : How to get better gets 150+ upvotes. Newbie asks : How to get better gets 50 downvotes. The world is hypocrite my friend.

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

    Well, the question how to get better in regular CP has appeared hundreds of times and the answer is already well known. Getting to where I am took thousands of problems solved for practice. Solving one marathon problem takes a couple days and there are not so many quality ones, so I’m not sure if it isn’t rather about pure theory. Also, it’s much harder to analyze what am I missing. That’s why I want to ask.

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

Spend as much time on marathons as you spent on CP and you will become one of the best, easy. Solve problems, read editorials (well, post-mortems/write-ups). Read and understand codes in the top of the leaderboard. And be ready to spend 50+ hours in a 1-week marathon.

and the most important advice: change the title ffs

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

    I still rather hope for the answer from somebody who in my opinion is definitely better in marathons than me ;_; Yea, I know that you’ll write about this probabilistic round, but guys from the post win regularly. Also, is this even possible to upsolve marathon matches? Or even view the codes of other competitors?

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

Red: breathes
Everyone: Upvotes!!!
lol..JK Nice Post but the title is misleading though.

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

you cant be good programmer because USA presidents are old and you had been USA president and olds cant code so you cant be red coder. Watch my profile picture if you are not believing that Radewoosh had been president

I often ask myself why am I existing.

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

The question found me 6 years after it was asked, so Radewoosh, sorry for the late response :)

I can speak for myself, other people might have had a different view. First, to dedicate as much time as possible the contest, meaning to take dayoff/vacation, have your wife/girlfriend understand and support you. Second, to keep the code well structured and flexible so that multiple iterations and versions don't make it hell. To prepare some sort of testing environment that can run thousand of 10s tests with one command and within minutes, as well as comparing with other versions. It helps to identify weak and strong spots that different approaches have. Third, Optimize low-level routines to the edge (I might have never used std::set in marathons), it will end up giving you extra 50% iterations of Simulated Annealing or whatever process is in use. Fourth, make the Random do the right job, meaning to analyze what can benefit from random tries. Fifth, it's often useful to split the problem by input values (one solution for small inputs, completely different solution for large, sparse vs dense and so on).

There's probably more that I just forgot. I truly enjoyed doing marathons, this feeling of deep engagement with the problem, and sleepless last night pushes are just unforgettable.