When submitting a solution in C++, please select either C++14 (GCC 6-32) or C++17 (GCC 7-32) as your compiler. ×

dreamoon_love_AA's blog

By dreamoon_love_AA, 9 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(peter50216), 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

| Write comment?
»
9 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?

  • »
    »
    9 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.

»
9 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 :).

  • »
    »
    9 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)

»
9 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.

  • »
    »
    9 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)

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

5 hours in a day is enough sir??

  • »
    »
    9 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.

  • »
    »
    9 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. @@)

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

      several years mean? at least how many years?

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

    Ain't nobody got time for that.

»
9 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.

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

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

  • »
    »
    9 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_love_AA have full-time job and still can spend 5h on trainings every day — yes, that's hard schedule :)

    • »
      »
      »
      9 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?

      • »
        »
        »
        »
        9 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.

    • »
      »
      »
      9 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...

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

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

        • »
          »
          »
          »
          »
          9 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)?

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

      what do you do? You have a job?

»
9 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)

  • »
    »
    9 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.)

»
9 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.

  • »
    »
    9 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.)

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

What judge do you suggest to practice for IOI ?

  • »
    »
    9 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.

»
9 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_love_AA Would you like to be my friend?
xD

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

    me also :D

  • »
    »
    9 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 ;)

»
9 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? ^.^

»
9 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

:(

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

Dear dreamoon_love_AA. 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

  • »
    »
    9 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...

    • »
      »
      »
      9 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"?

      • »
        »
        »
        »
        9 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.

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

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

»
9 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.

  • »
    »
    9 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.

»
9 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_love_AA ?

  • »
    »
    9 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.

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

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

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

»
9 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 :)

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

Hi, dreamoon_love_AA! 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!

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

Hey dreamoon_love_AA. 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?

  • »
    »
    9 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.

»
9 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?

»
9 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?

  • »
    »
    9 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.

  • »
    »
    6 years 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.

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

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

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

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

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

    And now you're red. Congratz

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

    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?

»
9 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!

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

You are my idol !!

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

    Why i get downvote , are you guys crazy?

»
8 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?!

  • »
    »
    8 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.

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

i don't have such type of friends who can help me when i face problem.in this situation from where should i learn?

»
8 years 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?

»
6 years 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.

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

    Congrats Now you are a stable specialist :)

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

      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.

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

        Thanks bro...Your rating graph is inspirational :). Did you improve through contests /general problem practice or you did lots of virtual contests too?

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

          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.

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

            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.

»
6 years 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)

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

what most I do to be able to solve math problems like this one http://codeforces.com/contest/478/problem/B

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

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

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

why in the list of awesome friends you didn't name gennady or petr ?

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

Do u know briansu