Rating changes for the last round are temporarily rolled back. They will be returned soon. ×

SummerPark's blog

By SummerPark, history, 5 weeks ago, In English,

Hello, I'm in need of your opinions.

I am bad at solving problems that involves finding one out of multiple solutions, it's one of my weak areas which i want to improve on.

I AM solving a lot of problems, so i don't think that's the issue, this thing is different from other topics, like for most topic's I've developed a way or a general strategy to approach them, so it takes me like 15 minutes to come up with a solution for those problems even for Div 2 D sometimes.

But for problems like the one i mentioned, i would be at times stuck totally even on Div 2 B. Im actually trying to develop a problem solving pattern or a general approach towards them.

How do you guys approach problems like these. Any help is appreciated.

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

»
5 weeks ago, # |
  Vote: I like it +13 Vote: I do not like it

You're talking about constructive problems right ??,

If that's the case, There is probably no general approach for them, they are mostly based on intuition, observation, finding pattern etc.. you may try to practice problems tagged with constructive algorithm from problemset.

»
5 weeks ago, # |
  Vote: I like it +9 Vote: I do not like it

You may find this comment helpful.

»
5 weeks ago, # |
Rev. 2   Vote: I like it +8 Vote: I do not like it

One idea (which I did on the Global Round yesterday for multiple problems) is to write a generator/validator locally, so if you come up with an algorithm but aren't sure if it works, you can easily find a counterexample, work through it by hand, and try to fix it or come up with a new idea. This also helps you be confident in your correctness when submitting. (So you can basically guess and check, sort of.)

Of course, it's "better" in some sense to actually understand a problem and come up with the solution and proof more systematically, but sometimes that's too hard. :)

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

    For a lot of constructive problems also, forgot to mention, a first step before coding is just to come up with examples and work through them on paper and see what your brain tries to do to solve them, then see if it's generalizable. Paper is useful for basically all problems (I've been trying to use it more), but especially these, I think.

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it +1 Vote: I do not like it

    I agree, I actually use this method of stress testing locally but it won't work i guess for complicated problems, i mean if you have to write 50 lines of code just for the generator :D

    Solving by making small examples sounds good, i will do it thanks !