dreamoon's blog

By dreamoon, 3 years ago, In English,

In recent one year, I don't know why but there are many people sending messages to me for asking similar problems. So I decide to create this blog.

In the beginning, I must say, you may feel disappointed after reading this blog. Because I don't have any special tips. My study method has wasted me many many time.

There are some basic points I think you have known.

  1. Practice, practice, and practice. I take so many time to think and solve problems. I think I do it 5 hours a day on average.

  2. Make friends with many awesome people. I know many awesome people. For example, arosusti, kelvin, peter50216(0O0o00OO0Oo0o0Oo), seanwu, Shik, takaramono, tmt514, ... If I have some problems that I can't solve in few weeks, I can almost get solution from my friends.

Then I say what I do for training myself.

When I do problems. There are two possible order for choosing problem.

  1. Start from most people solved one.
  2. Solve consecutive Numbers of problems and try to solve all of them.

I don't know which one is best. But I often change the strategy. And when I feel I can't solve problems anymore from a judge. I will find a new judge and continue to do the same thing.

In fact, I think the order of doing problems is not important for me. When I read and solve 90% problems from a judge. Will you think the order of solving be important? I really don't know how to choose order is best for me. So I do almost the problems.

List some judges I use.(In fact, There are many Taiwanese judges I solved not listing in following because they don't open for all people.)

  1. Codeforces. I think Codeforces is the best judge recently. It's easy to use and contain editorial for most problems.

  2. Topcoder. Topcoder have many awesome problems. Even I sometimes think problems of 250 pt are also beautiful. It contain Editorial for most problems, too. (You can find problems here.|You can find editorial here.)

  3. sgu I think sgu is the hardest judge. It contain many problems with unusual skill.

  4. Timus There are many hard contest in the judge. I think it's good for group training.

  5. ProjectEuler There are many good math problems in this website. After you solve a problem, you also can see how other people solve it in forum.

I think the feel between practice and competition is quite different. So sometimes I will random choose some problems from a judge to form a problemset and set time limit for training myself. But now Codeforces have function of virtual contest. We can simply do the same thing in Codeforces.

I don't choose problems by their topic. On the contrary, I study topic when I occur a problem that I cannot solve it. Then I will ask my friends whether the problem is related to some topic or google it.

I usually read AC code of other people even I can solve it. Sometimes we can found a totally different solutions, better time complexity solutions, or short solutions.

I don't study from specific websites or resources, either. I will google each thing from google respectively.

That's all what I do for studying algorithm.

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

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

Good job, thanks for advice!

P.S: Why do you think that Timus is for group training? And waht about SPOJ?

  • »
    »
    3 years ago, # ^ |
    Rev. 2   Vote: I like it +24 Vote: I do not like it

    Timus have many hard contest like Petrozavodsk Training Camp Series. When we prepare for World Final. We usually use them to practice teamwork.(it's not proper for newbie)

    I think SPOJ and UVa is too disorder and many duplicate problems. And it's hard to find solution from network. I think these judge should ask some experienced people to recommend problems. I use them to train my coding speed for easy problems.

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

USACO has also nice problems and training which is really helpful :).

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

    USACO is good for people who learn about 2~3 years. But I think the amount of problems is not enough. (in my memory)

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

Hey, for a person aiming at developing a good hand with graph, dp and number theory problems which online judge would be best? Thanks.

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

    I think any judge has function of tag satisfy your requirement. (Such as Codeforces, Topcoder)

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

5 hours in a day is enough sir??

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

    Depends on how much you are able to do in those 5 hours.

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

    If you can keep to do it for several years, I think it's enough. (the exact time I took is hard to estimate. I just choose a number I think it's enough. @@)

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

    Ain't nobody got time for that.

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

Don't get disheartned when you cant solve problems. Have relistic expectations ( like dont expect to go from blue to red within 2 months). If we learn so that we know we are better person today than we were yesterday, then that is true victory.

»
3 years ago, # |
  Vote: I like it +5 Vote: I do not like it

5 hours in a day?! Really? Do you have free time?

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

    You think it is a lot?

    Even a single team training will take 5 hours per day. Without upsolving, without reading editorials, without participating in other contests...

    Full-time job means 40 hours per week, while 7*5 gives you only 35 hours per week.

    So you think that one can't have free time while working at full-time job?

    But if dreamoon have full-time job and still can spend 5h on trainings every day — yes, that's hard schedule :)

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

      Out of curiosity how much time a week/day do you spend on competitive programming?

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

        I have no idea :) And there are no fixed values.

        Sometimes it is a lot (check my virtual contest participation in gym contests on January, 19 — I just did 4 quarterfinals in a row, so it was 20 hours:D ), and sometimes I don't write a single line of code for a whole day.

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

      What's the meaning of upsolving? I saw this word several times, but couldn't get it...

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

        Solving problem which you didn't managed to solve during contest.

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

          Thanks. So it means the professional training prefer internal sources (problemset, lecture, template,etc)?

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

      what do you do? You have a job?

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

Do you practice for 5 hours in a row? Or how do you split them during the day? Also, do you have time to do anything else? (homework, etc)

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

    I can think problem when I'm taking bus, washing, walking, eating and so on. When thinking problems become a habit, it's not hard to practice for 5 hours a day on average.(Thinking is one of the important thing in practice.)

    And I think I still have many free time to do other thing. At least I watch many anime and novel and do many sports.

    But I also think I'm a very crazy person compared to most people. So I usually wonder, do you really want to ask advise about how to practice from such crazy person like me? :P (I know there are some people who are similar to me. But It' still the minority.)

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

How do you feel like USACO contest?

I feel both silver and golden extremely tough, probably because I still need more practice. Yet I was just curious what are the difficulty levels they appear in top coders mind.

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

    I don't do USACO problems for at least 4 years. I don't know how is it now. In the past, I do it for some months. I think silver is too easy. And golden is still the level I can handle. And most problems are classical problems that I can find similar idea in other judge. So I don't participate any more. (Another reason is I don't like to take long time to wait result of judgement.)

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

What judge do you suggest to practice for IOI ?

  • »
    »
    3 years ago, # ^ |
    Rev. 2   Vote: I like it +8 Vote: I do not like it

    I'm not familiar to IOI.(I prepare for IMO mainly in high school.) But I guess it's depend on the type of problems in your country for choosing competitors.

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

      Did you go to the IMO?

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

        No, Taiwan have too many awesome people. I can't be select to national team.

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

Thank you for the awesome write-up!

I saw that you are one of the top10 ranked on UVA's uHunt. Would you say that uHunt + 'Competitive Programming 3' is one of the best for beginners, or do you think it is best to just solve contest problems and read good editorials from the sites you've already listed?

»
3 years ago, # |
  Vote: I like it +20 Vote: I do not like it

Thanks for your post, it's very helpful.

About the point: Make friends with many awesome people..
dreamoon Would you like to be my friend?
xD

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

    me also :D

  • »
    »
    3 years ago, # ^ |
    Rev. 2   Vote: I like it +20 Vote: I do not like it

    He also pointed: If I have some problems that I can't solve in few weeks, I can almost get solution from my friends. So at first, make sure that you can help him too ;)

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

does one need to put Kirino on userpic to improve? ^.^

»
3 years ago, # |
  Vote: I like it +60 Vote: I do not like it

In the beginning, I must to say, you may feel disappointed after reading this blog. Because I don't have any special tips. My study method waste many many time

:(

»
3 years ago, # |
  Vote: I like it +15 Vote: I do not like it

Dear dreamoon. Thank you for your nice blogs and comments :D I have some questions about studying method.

  1. You said that you spend about 5 hours to practice (thinking, coding, reading editorials,... ). Which one you usually spend more, thinking or coding?

  2. Do you care about how much things you have done each day? Do you think about "I must solve at least 3 problems a day" or something else?

  3. Consider the following case: You're solving a problem on Codeforces, and you can read the editorial everywhen you want. The problem is too difficult. How much time you spend to think before open the editorial?

  4. Do you usually write code after having found the algorithm for a problem?

I'm looking forward to your answer. Thank you :D

  • »
    »
    3 years ago, # ^ |
      Vote: I like it +27 Vote: I do not like it
    1. I guess the relation is thinking > coding >> reading editorials. my time of thinking is far more than reading editorials. For example, when I practice POI, I usually think a problem for more than three days. And I won't read editorial until I solve it. But when I'm a beginner(learn about 1~3 years), the relation is reading >> coding thinking. I study a variety of reference from books, websites and friends.

    2. No. I don't care it. However, I will be more happy if I can do more in a day.

    3. If it's a real time contest problem. I will read immediate after contest is end. But I will not read entire editorial. I will stop when I get new information what I don't know and continue to think. If It's not problems of real time contests, I seldom read editorial except I fell it's a problem contain huge knowledge I don't know(totally depend on my sense).

    4. I will almost write it when I still can take part in ICPC. But I think it's not necessary...

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

      "But when I'm a beginner(learn about 1~3 years)...."

      You mean for your first roughly 3 years you followed the strategy of "reading>>coding=thinking"?

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

        Yes. In 3. I say "I fell it's a problem contain huge knowledge I don't know". And when I'm a beginner I don't know many many thing. I still when encounter a problem I cannot solve then I start to read. I don't know whether it is a good method for training.

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

      Is there any editorials to POI? Can you give the link?

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

        If I'm eager to official solution, I will see it in http://oi.edu.pl/l/40/. Language is not the obstacle by translation tool.

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

          Do you know how to translate the documents without losing formatting?

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

Why you didn't mention UVA despite you are ranked 7 on this OJ.

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

    I have said some reason in this comment. Besides that, I think the frequency of system down of UVa if too often. And many problems have ambiguous or weak data. almost my friends don't solve UVa in near years. I solve it just because I'm addicted to solve problems...

    So If you want to practice in UVa. I think you should take related books as reference. But I don't read any of them.

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

Ok, it's cool to see that someone again mentioned Project Euler. Do you have some favorite problems, dreamoon ?

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

    I don't know how to reply this question. I like all problems contain new idea I don't see before.

»
3 years ago, # |
  Vote: I like it +50 Vote: I do not like it

Also, if you don't mind dreamoon, can you please tell a little more about yourself?

It would be both interesting and inspirational for the community to know your background. :)

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

Great job!

I think that the regional on UVALive is a good way for group training too. Especially those players who want to take part in the regional.

Hope you get your #1 as soon as possible :)

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

Hi, dreamoon! I'm only have a question for u :) I'm wondering, When have you started coding, and how long have u started coding? I'm looking for hearing to u, Thank friend!

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

Thank for dreamoon! I supposed I must learn from u, keep calm and Practice. All the best if We are friend! :)

»
3 years ago, # |
Rev. 3   Vote: I like it +1 Vote: I do not like it

Hey dreamoon. Maybe my question is a bit silly,cause it is dependent the person,but because you are free to questions and I am curious I will ask it :D. How much time took you from the time you started to train in algorithms-contets,to reach in division1,and to become red?

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

    I also start training from 2006/08/09. And other question you can see my rating graph and judge by yourself. I don't know which time I have the ability to div. 1.

»
3 years ago, # |
  Vote: I like it -8 Vote: I do not like it

Thanks for advice!

Just a word, how can we google a topic here in mainland China when google is blocked by GFW there?

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

I have two general questions...

1-What do you do if you can't solve a problem? For example i can easily solve div.2 A,B but it's hard for me to solve lots of div.2 C problems...What should i do?

2-How many div.2 C,D problems should i solve for training to go and stay in div.1?

  • »
    »
    3 years ago, # ^ |
      Vote: I like it +1 Vote: I do not like it
    1. Study them. Forget the thing that I can't solve them. Continue to compete.

    2. I think maybe the number of problems is not important. I have no idea about this question.

  • »
    »
    3 months ago, # ^ |
      Vote: I like it +12 Vote: I do not like it

    It's nice to see how you've improved through the years ! Congrats man.

  • »
    »
    14 hours ago, # ^ |
      Vote: I like it +14 Vote: I do not like it

    now that you're orange, pls share. your strategy man..

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

question, is it right to copy paste codes ?

as if you are solving a problem that requires max flow, is it right to copy paste it from previously written code you typed. Meaning that you only need to write it once being sure with no bugs then just using it, especially for data structures.

thanks!

»
3 years ago, # |
  Vote: I like it -38 Vote: I do not like it

You are my idol !!

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

    Why i get downvote , are you guys crazy?

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

      Don't make idols for yourselves

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

      ask yourself — why i get downvote , is my comment so stupid

»
3 years ago, # |
  Vote: I like it -19 Vote: I do not like it

dreamoon can u recommend me and other code about good programming books, which you used to learn, train,...thank you friend!

»
3 years ago, # |
  Vote: I like it -14 Vote: I do not like it

thanks a lot for your important suggestions.

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

Sometime I Could't Understand DIV-2 — A problem ( As I have to [ or more precisely I need to ] solve the A & B problem int 20 minutes ) . Sometimes I can solve A, B ,C problems . But I want to solve DIV-2 A & B problems Regularly. How to Train Myself dreamoon . I am looking forward to Your answer .

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

I don't choose problems by their topic. On the contrary, I study topic when I occur a problem that I cannot solve it.

I was totally agree with you in this point, but I trained for a year and when I participated in ACM-ICPC regional contest i find some problem with topic I never met before, fortunately I had competitive programming book and I could solve this problem during the contest. but what should I do to avoid such situation in the future?!

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

    Try to solve more problems; that way, you'll encounter more topics to study.

    There's no way to completely eliminate the situation you were in. However, studying topics which don't appear in programming competitions won't really help you, and if you don't encounter something even after solving many many problems, then it doesn't appear in programming competitions (or at least not with a frequency that'd make it worth studying for this purpose). Simple.

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

i don't have such type of friends who help me when i faced problem.in this situation from where will i study to learn?

»
23 months ago, # |
  Vote: I like it +3 Vote: I do not like it

Do you think participating in contests often on CF and upsolving the problems is a good way to go?

»
9 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Thanks a lot for this help post.

»
3 months ago, # |
  Vote: I like it -11 Vote: I do not like it

where to start for practice?

»
3 months ago, # |
  Vote: I like it +9 Vote: I do not like it

Thanks for your blog.

I have been doing CF since 1.5 years. I have solved around 530 problems in total ( Div II A 200+, Div II B 190+, Div II C 120+). I have learnt various data structures like segment tree (with lazy propagation), trie, BIT, Square root decomposition. Still I think my performance in contests is not improving. I am constantly at 1300 — 1500 rating. Should I just continue practicing or learn difficult topics used in Div I like flows. But they are of no use to me at this level.

»
3 months ago, # |
  Vote: I like it +5 Vote: I do not like it

Codechef is a pretty nice judge too. The Long contest helps in learning and acquiring new skills while testing the already existing ones, since the duration is 10 days. (basically, it's for people who like to learn a topic when they encounter a problem from that topic which they can't solve)