nFlamel's blog

By nFlamel, history, 4 years ago, In English

When there is a problem that I don't know the approach to or if I have coded the solution but it doesn't work for some reason, I usually check the editorial or view others solution. But if I upsolve the problem right away, it feels like cheating because I already know the solution.

So I wait about 2~3 days and try to upsolve. However I feel like I still remember the solution from few days ago and I am not confident that I will be able to solve this problem later on if it appears. How much should you wait after viewing the solution to a problem before trying to upsolve?

  • Vote: I like it
  • +4
  • Vote: I do not like it

»
4 years ago, # |
  Vote: I like it -62 Vote: I do not like it

For experienced users, they read the editorial and don't upsolve. The reason for that, is that you already understood the idea and no need to waste time to implement(except if the problem main issue is implementation, in that case it might be important to upsolve). For less experienced, it is usually better to upsolve instantly as this will grant them better implementation skills.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it -17 Vote: I do not like it

    Can someone actually explain why I got downvoted? I have tried that method and works pretty well. For the problems I couldn't solve and I am out of ideas, I check the editorial. If its implementation is easy, I don't implement. If it is not, then I might implement to improve my implementation skills and speed. I am not sure why I got heavily downvoted for such a suggestion...

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it +38 Vote: I do not like it

      I didn't downvote but I don't think this is a good strategy. Although CF is certainly shifting towards problems which have very simple implementations, I believe it's always a good idea to implement no matter how easy you think the implementation is. Not only does it help you make sure you actually understand the editorial, it's very good practice. In an actual contest you can't just PM the authors explaining your solution to solve the problem. And besides, if the implementation is easy, it shouldn't take too long to do anyways.

      I agree that at some point people probably get good enough so that implementation is a waste of time, but neither you or I are anywhere close to that level.

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Well, if the implementation is easy then yeah it's more acceptable to skip implementing it (even though I still personally disagree with that); but you didn't really mention that in your original comment.

»
4 years ago, # |
  Vote: I like it +1 Vote: I do not like it

If you're bothered by knowing the solution before you upsolve, why not just refrain from looking at the solution before you upsolve?

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +2 Vote: I do not like it

    Because I can't figure out the solution by myself :sob:

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it +17 Vote: I do not like it

      If that's the reason you're looking at the editorial/other solutions, then you shouldn't feel bad for looking or feel like you're cheating. It's best if you just implemented straight away. Everyone has problems they couldn't solve and you only improve if you look at the editorial and see what you did wrong.

      • »
        »
        »
        »
        4 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        Just curious, why do you think implementing right away is the best choice?

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

For me it's not just about following the steps. If I am going to solve this type of problem in contest, then I would have to do it from scratch, myself. So it's more about building up a thought process from scratch which leads to the solution without any "lucky thought" or "magical intuition" type of thing. Implementing my thought process then and there just completes the training.

»
4 years ago, # |
  Vote: I like it -9 Vote: I do not like it

Reading the editorial should be your last resort.. you can always look up hints in the discussion section which may help to solve the problem, also upsolving really hard problems might not get you anywhere.. you should upsolve problems slightly higher than your current rating

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +10 Vote: I do not like it

    For hints, I try to see if I can read a little bit of the editorial and then see if i can solve from there. It doesn't always work (especially since not all editorials are written with this in mind), but it works decently enough from my experience. However, I don't really think that there is anything wrong with reading an editorial if you have spent time thinking about the question, since reading the editorial is part of learning how to solve harder and harder questions. I do agree though that the problems you are solving shouldn't be too much more difficult than what you can solve currently.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +9 Vote: I do not like it

    If you want a hint, ask a person who solved the problem for one. If you look through the discussion it's a really high chance you're going to see a spoiler.

»
4 years ago, # |
  Vote: I like it +11 Vote: I do not like it

I personally almost never read any editorial unless i have solved the problem or i am sure that the problem use some fancy algorithm that i didn't know. If i couldn't solve some problem after some hours of thinking, i skipped them.