andrejerry1's blog

By andrejerry1, 10 years ago, In English

According to me,read solution-tutorial can make us lose the period of thinking deep about the problem, but it help us have more experience of the other. Otherwise, try to think-prove problems sometimes take too much time, and sometime u cant do it.But if u can do it, u will remember it long. So in ur opinion, which should we do more? I am on my way practicing. I hope u guys will give me some advice so that i can improve myself. Sorry for my mistakes in the writing(i will try more) Thank u!

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

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

I'm not the best at competitive programming, but I'd post my opinion anyway.

In terms of time, I usually give up after thinking for an hour. Not sure about others as I don't know anyone on codeforces in person.

But most importantly, I keep thinking as long as I am willing to. I can't do my best if I'm not into the problem.

I sometimes wake up in the morning thinking of problems I could not solve last night, while I sometime give up in 5 sec if I'm not into it.

»
10 years ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

In my case it highly depends on the progress I make if I work on the problem. If after two hours of thinking I still have no clue or I'm at the same place I was before I go for the editorial. Otherwise, I can keep trying during days. So my advice is keep trying until you have no new ideas or progress on that problem.

The main idea I have when I practice is "challenge but do not frustrate". Some problems are simply so far away from your current level and they probably require some knowledge you don't have in order to solve them, or they simply demand more "problem-solving skill" than you have at that given moment. In this case I think that it is meaningless keep trying, and you will get more profit from them if you read the editorial or look other people's code in order to learn new stuff and why you could not solve this problem.

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

    Sometimes, at first i can not do the problem and just left it there. After i forgot it, when i come back, sometimes i find out another way of thinking and its the solution :)) However, tks for ur opinion, i like it, i think i will try it in the first step when i am still low level. After that, when i am good enough, i will do like I_love_Tanya_Romanova opinion And ofcourse i will try to code as much as i can like ivplay said. Tks all!!! i have determined more in how i will train from now.

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

I wish someone with good ratings comments here, I'm also interested.

And also my opinion, I think if you don't try to solve them yourself, you will never find out your weak-points, you can never know what to practice on. Also, you will almost never enjoy just turning the tutorial into code, it's really boring.

Reading tutorials are great, but I try them last.

»
10 years ago, # |
Rev. 2   Vote: I like it +4 Vote: I do not like it

Warning: as far as I know, my point of view about this question is not most common one:)

I think that one should not spend on problem more then 3-4 minutes (more precisely: time to understand statement + 3..4 minutes).

If you are preparing for ACM competitions and participating in lots of different contests — you'll have enough time to think about problems during contests:) Also it is better idea to simulate participation in contest that you missed virtually (as close to virtual participation as possible, if given site does not provide such future), and then go to editorial — instead of upsolving this contest like online judge or going straight to editorial.

But when you spend 2 hours on some problemset... or 5, if it is ACM contest... or even more, if it is some long online contest... Then you should not waste time and keep thinking about these problems, but read editorial instead:)

And about the part u will remember it long — i can forget both solution from editorial and solution from contest:) If you forgot solution from editorial and can't restore it in reasonable amount of time — maybe you did not understood that editorial well? Like ikatanic said here, you should make everything clear in your head.

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

    In my experience, you usually have about 1 hour to solve the hardest problem you try in a contest, so this isn't so far from the popular opinion after all :)

    (Though I do tend to think a bit longer when the problem is from codeforces, because the editorials here are usually nearly impossible to understand.)

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

A rolling stone gathers no moss. After all we all are here to write solution to some problem. So do as much code as you can. The problems those are slightly harder than your current skill you can spend time on thinking / proving those problems/solutions. The problems those are much harder than your current skill, you should simply go for the editorial. And last but not the least write as much code as you can everyday. May be easy, may b simple , but do it. Also, when you implement your idea , you should look some others implementations also. It will improve your implementation skill and lead you to write bug free code.

»
10 years ago, # |
Rev. 2   Vote: I like it -6 Vote: I do not like it

In my opinion, when you think about a problem, you have two possible situations:

1) You come up with a good solution and you solve the problem. Then, you can think more about it or read the editorial, to see if it has more solutions. In this case, you should write code for all of them.

When you feel you don't make any progress and you come up with the same ideas over and over again, you are in the next situation.

2) You can't come up with a good solution. Then, you should divide the editorial in many parts and to do as follows: look at the first part of the editorial and try to continue by yourself. If you are still unable to find a solution, look at the second part and so on. After you manage to solve the problem, go to the situation I described above, at 1).

I think it's useless to read the entire editorial after thinking about a problem, because if the correct idea is totally different to yours, it's the same thing as reading the editorial instead of thinking about that problem. :)

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

    Actually, about the I think it's useless to read the entire editorial after thinking about a problem, because if the correct idea is totally different to yours, it's the same thing as reading the editorial instead of thinking about that problem. :) thinking about a problem help u have experience, although u wrong or not :) But i can see ur point. ur dividing in two situation is great. it will help me much. Tks a lot :)

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

      Yes, I agree that thinking about a problem help you to get experience, but imagine this scenario: you think about a problem, let's say for two hours, and you have some ideas, but still don't manage to solve the problem. You take a look over the editorial and see that the correct solution is totally different to yours. I don't think this helps you more than doing the second situation I've described in my previous comment. If you see only a little part of the correct solution, you can think more about the problem, having an idea to start from. In my opinion, this will help you to get closer and closer to the right solution, using only some hints from the editorial, not all of them.

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

        agree. but sometimes u need to find out the starting point by ur own, especially in the test :) anyway we are practicing and my level is so low, i will do ur strategy then :3 tks again !!!

        • »
          »
          »
          »
          »
          10 years ago, # ^ |
          Rev. 2   Vote: I like it 0 Vote: I do not like it

          As I've written above, "When you feel you don't make any progress and you come up with the same ideas over and over again, you are in the next situation." :P

          So, if you don't find the idea to start from, you have to go to the editorial and take a look over the first part of it :P

»
10 years ago, # |
  Vote: I like it -11 Vote: I do not like it

I'd say that both things must be done.

I usually read the problem, try to solve it by myself, and if I didn't find the solution after an hour or so, I read the editorial. I try to understand the solution and then, once everything is clear, I code it. If I don't understand the solution explained in the editorial, then the problem is beyond my current skills and I stop trying (maybe I'll solve it when I come back to it in the future with more knowledge and experience).

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

I think it is useless to spend too much time on one problem.If you've thought about a problem for over 2 hours,thinking more won't make you solve it.So you can just read the solution-tutorial.