Блог пользователя dreamoon_love_AA

Автор dreamoon_love_AA, 9 лет назад, По-английски

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.

  • Проголосовать: нравится
  • +516
  • Проголосовать: не нравится

»
9 лет назад, # |
Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится

Good job, thanks for advice!

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

  • »
    »
    9 лет назад, # ^ |
    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.

»
9 лет назад, # |
Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится

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

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится 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)

»
9 лет назад, # |
  Проголосовать: нравится 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.

»
9 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

5 hours in a day is enough sir??

»
9 лет назад, # |
  Проголосовать: нравится +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.

»
9 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

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

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +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_love_AA have full-time job and still can spend 5h on trainings every day — yes, that's hard schedule :)

    • »
      »
      »
      9 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

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

      • »
        »
        »
        »
        9 лет назад, # ^ |
          Проголосовать: нравится +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.

    • »
      »
      »
      9 лет назад, # ^ |
        Проголосовать: нравится +6 Проголосовать: не нравится

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

    • »
      »
      »
      9 лет назад, # ^ |
        Проголосовать: нравится +8 Проголосовать: не нравится

      what do you do? You have a job?

»
9 лет назад, # |
  Проголосовать: нравится 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)

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +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.)

»
9 лет назад, # |
  Проголосовать: нравится +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.

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +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.)

»
9 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

What judge do you suggest to practice for IOI ?

»
9 лет назад, # |
  Проголосовать: нравится +20 Проголосовать: не нравится

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 лет назад, # |
Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится

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

»
9 лет назад, # |
  Проголосовать: нравится +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

:(

»
9 лет назад, # |
  Проголосовать: нравится +15 Проголосовать: не нравится

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 лет назад, # ^ |
      Проголосовать: нравится +27 Проголосовать: не нравится
    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 лет назад, # ^ |
        Проголосовать: нравится +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"?

      • »
        »
        »
        »
        9 лет назад, # ^ |
        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.

    • »
      »
      »
      9 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

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

»
9 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

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

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +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.

»
9 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

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

»
9 лет назад, # |
  Проголосовать: нравится +50 Проголосовать: не нравится

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 лет назад, # |
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 :)

»
9 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

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 лет назад, # |
Rev. 3   Проголосовать: нравится +1 Проголосовать: не нравится

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 лет назад, # ^ |
      Проголосовать: нравится 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.

»
9 лет назад, # |
  Проголосовать: нравится -8 Проголосовать: не нравится

Thanks for advice!

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

»
9 лет назад, # |
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?

»
9 лет назад, # |
  Проголосовать: нравится 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!

»
9 лет назад, # |
  Проголосовать: нравится -38 Проголосовать: не нравится

You are my idol !!

»
8 лет назад, # |
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?!

  • »
    »
    8 лет назад, # ^ |
      Проголосовать: нравится +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.

»
8 лет назад, # |
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?

»
8 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

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

»
7 лет назад, # |
  Проголосовать: нравится +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.

  • »
    »
    6 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Congrats Now you are a stable specialist :)

    • »
      »
      »
      6 лет назад, # ^ |
      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.

      • »
        »
        »
        »
        6 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

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

        • »
          »
          »
          »
          »
          6 лет назад, # ^ |
          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.

          • »
            »
            »
            »
            »
            »
            6 лет назад, # ^ |
              Проголосовать: нравится 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.

»
7 лет назад, # |
  Проголосовать: нравится +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)

»
6 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

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

»
6 лет назад, # |
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

»
6 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

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

»
6 лет назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится

Do u know briansu