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

Автор nFlamel, история, 4 года назад, По-английски

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?

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

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

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 года назад, # ^ |
      Проголосовать: нравится -17 Проголосовать: не нравится

    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 года назад, # ^ |
        Проголосовать: нравится +38 Проголосовать: не нравится

      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 года назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      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 года назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

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

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

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

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

      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 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

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 года назад, # |
  Проголосовать: нравится -9 Проголосовать: не нравится

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 года назад, # ^ |
      Проголосовать: нравится +10 Проголосовать: не нравится

    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 года назад, # ^ |
      Проголосовать: нравится +9 Проголосовать: не нравится

    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 года назад, # |
  Проголосовать: нравится +11 Проголосовать: не нравится

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.