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

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

Hey all,

So the best thing to do after a contest is to read editorals for problems that I read and couldn't come up with a solution during the contest.

But I find that most editorials are hardly helpful, because all I find is a direct explanation of the solution.

What I'm saying is that it is better to explain the steps you took to reach that solution, how you thought and came up with it, like sometimes I think of a bruteforce solution and then I conclude something that reduce it to better or simpler solution.

Looking forward to reading more opinions about this.

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

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

Of course that is true, but writing a very detailed editorial with thought process included is very difficult.

What I do instead is simply think why didn't I come up with that? Did I dwell on another approach too much? Did I discard the possibility of this approach working too lightly? And so on :)

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

    some details are enough and some are exaggerated, and another problem is the huge demand on the editorial after each contest.

    I don't think that writers should have this detailed editorial ready right away, they can have their time preparing modifying it.

    Thank you :D

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

I only hate " It's clear that" or " We can easily see that the formula is"

If it's clear, I won't be looking at the editorial.

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

    That is correct, this "_clear_" part is usually the part that needs more details.

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

    Usually it becomes clear when you know what it is though which is why it is useful. And even when it still isn't clear you can try to prove it yourself to learn something. If that is too far off then you better try easier questions first, editorials aren't meant to explain everything or they would take up a whole book.

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

I couldn't agree more. When you are about to write an editorial, you should keep in mind that there will be people who have absolutely no idea on how to solve this problems. Most of the times, I feel like the editorial writers don't take this into consideration. I feel editorials are mostly directed towards people who were really close to solve the problem or that indeed solved it during the contest, this shouldn't be the case. The point of an editorial is that even gray-blue coders can upsolve all problems with the help of it.

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

    exactly, the most important thing and the most common is that all of us can think of the way to solve, but not all know the method to do so.

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

    When you are about to write an editorial, you should keep in mind that there will be people who have absolutely no idea on how to solve this problems

    i.e. "who are too lazy to google given keywords".

    Just an example, this blog post. You could do a ton of obvious things: google something like "recursive functions complexity", add a simple call counter to your function and guess the pattern, etc. And what you actually did? Exactly, created a blog post asking for help from guys who work harder than you

    • »
      »
      »
      9 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится -16 Проголосовать: не нравится

      -

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

        I would say that you should learn how to learn.

        Seriously, if you are not able to grasp some knowledge — that's your huge disadvantage. But in most of cases it doesn't mean that your brain can't work in proper way — usually it is either about you acutally being lazy to work by yourself, or about the fact that you didn't learn a lot of things by yourself before and you need to work on that skill, in the same way like you are working on other skills — solving problems, playing guitar, speaking foreign language etc.

        For me years in university helped with it. Here is how it worked in my university — when there is no book about the thing you have to learn, or there is some book, but you can't understand even a single formula from it (maybe because it is actually so bad and unclear, maybe because you missed too much of basic things during previous courses) — you start realizing that Google can be used to get almost any knowledge you need. After that some transition or explanation which is missing in editorial — doesn't sound bad at all :D

        marat.snowbear gave a good explanation below — if you can't understand an editorial, quite often it means that your level is way too low for this problem so far. Sometimes editorials are actually bad; that's true. I can name several authors who are constantly preparing very bad editorials :) But most of them haven't prepared rounds for a long time) Most of recent editorials are good enough. Some of them are really awesome (like editorials by Endagorion — they are detailed and clear), some of them are not so cool — yet good enough to help you with solving a problem.

        If you can't understand only some step, some formula or some part of solution — you may ask about it in comments. If you don't understand part described as "and now obvious one" — ask about better explanation; btw, if that comment will be heavily downvoted (which happens sometimes) — it will be a sign for you that for majority this thing is actually clear enough :)

        If you don't understand editorial in general — either you didn't try to understand it, or you are actually not able to get that thing — because you are missing way too much needed knowledge/skill. In second case — maybe you'd move to an easier problem?

        And now a few words about last part of your question. Basically you are asking about editorials teaching you how to solve problems. Well, it would be great to have such editorials. But how do you imagine it? Let's say I am writing some editorial, if I'll write "For those of you who are curious how to come up with this idea — I saw it a year ago in solution to some other problem, from that time I am always using it in problems like this one" — will it be OK? If I actually have no idea how to come up with this one... How should I teach you such stuff? Here is the knowledge — how to solve such problem; you can get this knowledge from editorial and use it for all such problems in future. How can you come up with it by yourself? Well, why would you need to do it by yourself if you can learn it? But that's a different story :)

        Writing good editorial is hard, and writing editorial which will somehow teach you to solve problems in general — sounds even harder.

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

      Some times it happens that all I need is to search for the missing part, but other times it's the same as I mention before.

      I can look for the methods and techniques but there will still be a gap, because how to think is the most important part in solving problems.

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

    It's not that simple to write an editorial so that everybody will be able to solve the problem after reading it. I think it's ok to assume some knowledge from the participants and sometimes omit the details. For example if you're a complete beginner and have no chance to solve div 1 E problem would you blame editorial writer in case if he didn't explain in editorial how to implement segment tree for example? My point is that for harder problems you can assume higher level of people who tries to solve them and correspondingly you can skip more details.

    . I feel editorials are mostly directed towards people who were really close to solve the problem or that indeed solved it during the contest, this shouldn't be the case. The point of an editorial is that even gray-blue coders can upsolve all problems with the help of it.

    I strongly disagree with it. I think there are two points in editorials. If the problem is out of your league then it makes sense to read editorial diagonally to get the main concept or idea without diving into details. Most editorials are ok from this point of view, you can get keywords out of them and practice in those areas before getting into details. This is the first point and the second point is exactly people who were close to solve the problem on their own.

    And a side note: I think that you learn only solving problem only if you solve it yourself. Solving a problem after reading an editorial can teach you some data structure/technique/approach but there is usually a huge step between knowing something and being able to apply it. So don't blame editorials for not being able to solve problems.

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

    If you want something that explains how to solve the problem such that anyone can follow then just look at other peoples' code.

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

      Why the downvotes? This is what I do when I don't understand the editorials... I picked apart a ton of code from top competitors to see what it did during my first months and back then I knew next to nothing. One of the first times I did it was when I looked at antas solution to this problem, I was amazed that you could solve it that way because I had no idea on how to solve it before:

      http://codeforces.me/contest/489/problem/A

      http://codeforces.me/contest/489/submission/8720684

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

        Not everyone can pick apart others' codes (or has the patience for it like me), so "anyone can follow" isn't true. It's just another method and anyway, definitely worse than a good editorial.

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

          But you learn much more by trying to reverse engineer others logic than to get the logic served on a silver platter. Also you get hints on how to properly structure solutions. Think like this, by reading the logic and then implementing it you only practice implementation. But by seeing an implementation and trying to deduce the logic from it then you only practice the logic!

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

            You practice others' implementation, which isn't the same as practicing implementation in general. Besides, just writing the solution can help you understand the logic. There aren't just two simple cases :D

            There's a class of useful skills to be gained this way, sure, but it's not (and shouldn't be) a crucial step in coding competitions. I haven't been reading editorials much lately, so I can't directly respond to the OP, but if editorials are lacking, then finding a way around reading them ("just look at others' codes") isn't a solution — and as I pointed out before, doesn't universally work either.