### dreamoon_love_AA's blog

By dreamoon_love_AA, 5 years ago, ,

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.

• +516

 » 5 years ago, # | ← Rev. 2 →   +3 Good job, thanks for advice!P.S: Why do you think that Timus is for group training? And waht about SPOJ?
•  » » 5 years ago, # ^ | ← Rev. 2 →   +24 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.
 » 5 years ago, # | ← Rev. 2 →   +3 USACO has also nice problems and training which is really helpful :).
•  » » 5 years ago, # ^ |   0 USACO is good for people who learn about 2~3 years. But I think the amount of problems is not enough. (in my memory)
 » 5 years ago, # |   0 Hey, for a person aiming at developing a good hand with graph, dp and number theory problems which online judge would be best? Thanks.
•  » » 5 years ago, # ^ |   +5 I think any judge has function of tag satisfy your requirement. (Such as Codeforces, Topcoder)
 » 5 years ago, # | ← Rev. 2 →   0 5 hours in a day is enough sir??
•  » » 5 years ago, # ^ |   +11 Depends on how much you are able to do in those 5 hours.
•  » » » 5 years ago, # ^ |   0 +
•  » » 5 years ago, # ^ |   +1 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. @@)
•  » » » 4 years ago, # ^ |   0 several years mean? at least how many years?
•  » » 2 years ago, # ^ |   -6 Ain't nobody got time for that.
 » 5 years ago, # |   +1 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.
 » 5 years ago, # |   +5 5 hours in a day?! Really? Do you have free time?
•  » » 5 years ago, # ^ |   +23 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 :)
•  » » » 5 years ago, # ^ |   0 Out of curiosity how much time a week/day do you spend on competitive programming?
•  » » » » 5 years ago, # ^ |   +26 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.
•  » » » 5 years ago, # ^ |   +6 What's the meaning of upsolving? I saw this word several times, but couldn't get it...
•  » » » » 5 years ago, # ^ |   +15 Solving problem which you didn't managed to solve during contest.
•  » » » » » 5 years ago, # ^ |   0 Thanks. So it means the professional training prefer internal sources (problemset, lecture, template,etc)?
•  » » » 5 years ago, # ^ |   +8 what do you do? You have a job?
 » 5 years ago, # |   0 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)
•  » » 5 years ago, # ^ |   +57 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.)
 » 5 years ago, # |   +1 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.
•  » » 5 years ago, # ^ |   +3 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.)
 » 5 years ago, # |   0 What judge do you suggest to practice for IOI ?
•  » » 5 years ago, # ^ | ← Rev. 2 →   +8 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.
•  » » » 5 years ago, # ^ |   +3 Did you go to the IMO?
•  » » » » 5 years ago, # ^ |   +9 No, Taiwan have too many awesome people. I can't be select to national team.
 » 5 years ago, # |   0 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?
 » 5 years ago, # |   +20 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
•  » » 5 years ago, # ^ |   0 me also :D
•  » » 5 years ago, # ^ | ← Rev. 2 →   +20 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 ;)
•  » » » 5 years ago, # ^ |   0 Okay:'(
 » 5 years ago, # | ← Rev. 2 →   +3 does one need to put Kirino on userpic to improve? ^.^
•  » » 5 years ago, # ^ |   +12 I think you should put the smile of tourist...
•  » » » 5 years ago, # ^ |   +8 I am depressed
 » 5 years ago, # |   +60 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 :(
 » 5 years ago, # |   +15 Dear dreamoon. Thank you for your nice blogs and comments :D I have some questions about studying method. You said that you spend about 5 hours to practice (thinking, coding, reading editorials,... ). Which one you usually spend more, thinking or coding? 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? 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? Do you usually write code after having found the algorithm for a problem? I'm looking forward to your answer. Thank you :D
•  » » 5 years ago, # ^ |   +27 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. No. I don't care it. However, I will be more happy if I can do more in a day. 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). I will almost write it when I still can take part in ICPC. But I think it's not necessary...
•  » » » 5 years ago, # ^ |   +3 "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"?
•  » » » » 5 years ago, # ^ | ← Rev. 2 →   0 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.
•  » » » 5 years ago, # ^ |   0 Is there any editorials to POI? Can you give the link?
•  » » » » 5 years ago, # ^ |   0 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.
•  » » » » » 5 years ago, # ^ |   0 Do you know how to translate the documents without losing formatting?
 » 5 years ago, # |   0 Why you didn't mention UVA despite you are ranked 7 on this OJ.
•  » » 5 years ago, # ^ |   +1 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.
 » 5 years ago, # |   0 Ok, it's cool to see that someone again mentioned Project Euler. Do you have some favorite problems, dreamoon ?
•  » » 5 years ago, # ^ |   0 I don't know how to reply this question. I like all problems contain new idea I don't see before.
 » 5 years ago, # |   +50 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. :)
•  » » 5 years ago, # ^ | ← Rev. 3 →   +25 I'm waiting for your answer, dreamoon ;)
 » 5 years ago, # | ← Rev. 2 →   0 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 :)
 » 5 years ago, # |   0 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!
•  » » 5 years ago, # ^ |   0 I started coding from 2006/08/09 until now.
 » 5 years ago, # |   0 Thank for dreamoon! I supposed I must learn from u, keep calm and Practice. All the best if We are friend! :)
 » 5 years ago, # | ← Rev. 3 →   +1 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?
•  » » 5 years ago, # ^ |   0 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.
 » 5 years ago, # |   -8 Thanks for advice!Just a word, how can we google a topic here in mainland China when google is blocked by GFW there?
 » 5 years ago, # | ← Rev. 2 →   -8 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?
•  » » 5 years ago, # ^ |   +1 Study them. Forget the thing that I can't solve them. Continue to compete. I think maybe the number of problems is not important. I have no idea about this question.
•  » » 2 years ago, # ^ |   +12 It's nice to see how you've improved through the years ! Congrats man.
•  » » 22 months ago, # ^ |   +17 now that you're orange, pls share. your strategy man..
•  » » 18 months ago, # ^ |   +3 And now you're red. Congratz
•  » » 17 months ago, # ^ |   +5 Hi Batman, now that you are red, can you please share your strategy to tackle div2 C,D? How and when you started to solve div2 C,D in live contest?
 » 4 years ago, # |   0 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!
 » 4 years ago, # |   -38 You are my idol !!
•  » » 4 years ago, # ^ |   -30 Why i get downvote , are you guys crazy?
•  » » » 4 years ago, # ^ |   -9 Don't make idols for yourselves
•  » » » 4 years ago, # ^ |   -18 ask yourself — why i get downvote , is my comment so stupid
•  » » » » 20 months ago, # ^ |   -6 Hah you ask yourself too!
 » 4 years ago, # |   -19 dreamoon can u recommend me and other code about good programming books, which you used to learn, train,...thank you friend!
 » 4 years ago, # |   -14 thanks a lot for your important suggestions.
 » 4 years ago, # | ← Rev. 3 →   0 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 .
 » 4 years ago, # | ← Rev. 3 →   +3 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?!
•  » » 4 years ago, # ^ |   +6 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.
 » 4 years ago, # | ← Rev. 2 →   0 i don't have such type of friends who can help me when i face problem.in this situation from where should i learn?
 » 4 years ago, # |   +3 Do you think participating in contests often on CF and upsolving the problems is a good way to go?
 » 3 years ago, # |   0 Thanks a lot for this help post.
 » 2 years ago, # |   -11 where to start for practice?
 » 2 years ago, # |   +9 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.
•  » » 20 months ago, # ^ |   0 Congrats Now you are a stable specialist :)
•  » » » 20 months ago, # ^ | ← Rev. 2 →   +3 Thanks man, I didn't knew people notice average coders like me also. I also hope for you to succeed as well. Just keep trying and Never Give Up. A time will come when failure will fail and success will win.
•  » » » » 20 months ago, # ^ |   0 Thanks bro...Your rating graph is inspirational :). Did you improve through contests /general problem practice or you did lots of virtual contests too?
•  » » » » » 20 months ago, # ^ | ← Rev. 3 →   0 I didn't do any virtual contests, but I made sure never to miss any live contest. Yes, I did practice solving harder problems. Never go for a easy one, there should be some learning with the problem.
•  » » » » » » 20 months ago, # ^ |   0 At this moment , in how many(& which) topics you feel comfortable now? I mean , like I feel confident solving easy-medium level greedy and math problems. This question may seem silly to you but it can give me an aprox idea about what concepts are required to become a stable specialist.In live contests I could solve div2 A and B (sometimes one of them get hacked :D ) but not C.
 » 2 years ago, # |   +5 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)
 » 17 months ago, # |   0 Very Nice!
 » 17 months ago, # | ← Rev. 2 →   0 what most I do to be able to solve math problems like this one http://codeforces.com/contest/478/problem/B
•  » » 17 months ago, # ^ |   0 Learn math and practice.
•  » » » 17 months ago, # ^ | ← Rev. 3 →   0 .
•  » » » » 17 months ago, # ^ | ← Rev. 2 →   0 . 
 » 14 months ago, # | ← Rev. 3 →   -9 My math skill is too much poor. I'm coding for almost 16-18 months. I'm trying to increase my math skill from the beginning. What strategy & site should I follow? For basic math to advance? Is there any way I would find the problems or learning methods sorted by difficulty or category? Thank You O_o
•  » » 14 months ago, # ^ | ← Rev. 2 →   -9 Lmao. Define good programmer. Honestly, I think that you wouldn't even be considered a novice in the professional world if you train purely in CP. You have 2 years? Go take up some internships and work on some projects that benefit others and not write code for your own pleasure. That is my definition of a good programmer.
 » 14 months ago, # |   0 why in the list of awesome friends you didn't name gennady or petr ?
•  » » 14 months ago, # ^ |   -9 Lmao. Why should the OP do so?
•  » » » 14 months ago, # ^ |   0 op??
•  » » » » 14 months ago, # ^ |   0 Original poster.
 » 14 months ago, # |   +2 Do u know briansu