Who is not know ACRush? He is one of top programmer in the world (especially in algorithm contest). In topcoder his handle can look here.
we can learn from the master,ACrush, i copy his chat in topcoder from another site, hope it can be useful for us which want to improve algorith’s skill. Below are his chat’s :
FameofLight >>ACRush: Finally the god of programming arrives
FameofLight >>ACRush: do you follow a random practice , or you practice question by topic , in your early days
ACRush >>FameofLight: No, our team practiced 3 or 4 full contests a week.
pt1989 >> ACRush: Can u tell us whom or what do u credit for ur success?
ACRush>> pt1989: I think more practice is the way.
ktuan >>ACRush: how can you arrange your study with 3-4 contests a week ?
ACRush>> ktuan: UVA, SGU , ZJU and PKU is enough.
pt1989 >>ACRush: what is ur method of practising? random or organised?
ACRush >>pt1989: contest env. We always solve programs in contest env.
Sunny_05 >>ACRush: wat is ur daily routine ?? i mean hw do u practice everyday ??
ACRush >>Sunny_05: We only have weekly routine for practice.
binarywithme>> ACRush: what u think about world final problems..level of difficulty
ACRush >>binarywithme: A little harder than 1000p.
MB__>> ACRush: Which of these do you do after you submit your solution on TC: test solution, re-read problem statement, check code line by line
ACRush>> MB__: test for at least 10 cases.
martins256>> ACRush: how many problems have you solved on OJ ?
ACRush >>martins256: about 2000.
kcm1700 >>ACRush: How many problems have you proposed on OJ or anything like this competition or something…?
ACRush >>kcm1700: about 2000.
vijay_comc>> ACRush: Who is your Arch Rival in Programming ? 😉
ACRush >>vijay_comc: Petr, I think.
SomethingWrong>> ACRush: What is your favourite Online Judge?
ACRush>> SomethingWrong: SGU.
vexorian >>ACRush: Why SGU?
ACRush>> vexorian: More tricky testcases.
Dee2306 >>ACRush: Being one of top programmers, do u believe its just practice which makes u perfect.. or some of u are born genius ??
ACRush >>Dee2306: It’s at least 80% due to practice
stormsky>> ACRush: how to practice ACM for a ACM beginner?
ACRush >>stormsky: practice in contest env.
piva>> ACRush: Do you train more of one category of problems? Or you just solve problems at random?
ACRush>> piva: I do more practice in the ones I have troubles with.
pt1989 >>ACRush: what are ur interests other than programming?
ACRush >>pt1989: WarCraft.
vijay_comc>> ACRush: Petr is already married. No plans to compete him in that area ?
ACRush >>vijay_comc: ….not yet.
Sarkin >>ACRush: Is analyzing algorithms an essential part of learning algorithms?
ACRush>> Sarkin: Not all, I think coding is in practice room is the rest way.
abdessamad>> ACRush: can believe it! when i see your challengers
ACRush>> abdessamad: It’s one thing that Petr did much better than me.
stjepan>> ACRush: where did/do you practice most and how?
ACRush>> stjepan: And join contest.
binarywithme>> ACRush: why u choose c++ as a default programming language
ACRush>> binarywithme: er.. Stl is the first reason. Another one may be efficient.
geekru2>> ACRush: during contest, what kind of problems do u enjoy doing? as in type of problem?
ACRush>> geekru2: dp and network-flow.
reginachris>> ACRush: What’s the best OJ to start with for practice (UVa, SPOJ, TC, etc.)?
ACRush >>reginachris: USACO
ferry>> ACRush: What do you do when you can’t solve a problem or you don’t know what’s wrong?
ACRush>> ferry: I will try to pass it in practice room. I always do that.
geekru2>> ACRush: Do you solve puzzles and mind bending questions to improve your problem solving techniques?
ACRush>> geekru2: no. I don’t like such problems like suduko.
Sarkin >>ACRush: What algorithm types helped you in the IOI?
ACRush >>Sarkin: dp.
abdessamad >>ACRush: did you like chess?
ACRush>> abdessamad: yes.
geekru2>> ACRush: when in a team event(IOI etc), do you dominate while programming?
ACRush >>geekru2: yes. I guess.
kcm1700>> ACRush: how do you prepare data for the challenge phase?
ACRush >>kcm1700: The trickiest one, of course.
binarywithme>> ACRush: sir what is the best way to learn DP.
ACRush>> binarywithme: TC contest.
[dasha]>> ACRush: When u were beginning to compete,did u have any problems? Like low speed of sloving, or maybe some particular method u couldn’t understend for a long time, sth else? If yes, how did u get over that?
ACRush>> [dasha]: USACO is a really good place. Especially for the beginners.
frank44>> ACRush: how long did the usaco practice take you?
ACRush>> frank44: half one year.
binarywithme>> ACRush: what u think math should b strong to become a Gud programmer
ACRush >>binarywithme: The mathematical foundation is helps.
khanhptnk>> ACRush: excuse me, do you think what we should prepare before an important contest ?
ACRush>> khanhptnk: relax, and rush some s i m p l e problems. And solve some problems in a contest env. is also helpful.
Sarkin>> ACRush: Do you recommned reading “Introduction to Algorithms”? if you know?
ACRush>> Sarkin: Really good.
coder29>> ACRush: which parts do u advice to read in “Introduction to Algorithms”?
ACRush>> coder29: All parts are perfect. except complexity.
MB__>> ACRush: do you do any sports but topcoding?
ACRush>> MB__: soccer.
vijay_comc>> ACRush: Complexity in CLRS is flawed ??
ACRush >>vijay_comc: 7-8
Sarkin >>ACRush: What do you mean except comlexity?
ACRush>> Sarkin: That’s only my opinion.
pcaldeira >>ACRush: which skill do you consider most important on TCHS/ioi-style contests?
ACRush >>pcaldeira: algorithm skills and coding ability.
coder29>> ACRush: I am newbie…which OJ is better fr me…USCO or UVA?
ACRush>> coder29: USACO
hakami >>ACRush: Are you useing library or typing from first for SRMs?
ACRush >>hakami: some includes and basic untilities.
vrajesh198>>9 ACRush: Will you try to prove your algorithms to yourselves during contest time or just believe your intuition and start coding?
ACRush >>vrajesh1989: Yes, it’s very important for me.
Sarkin >>ACRush: Do you use algorithm analyzis when solving a problem to see it’s effeciency?
ACRush >>Sarkin: Yes. the effeciency sometimes is more important than correctness in TC contest.
coder29 >>ACRush: basically i want 2 to do pratice on DP and greedy types…is TCs’ room are sufficient..?
ACRush >>coder29: A bulk of dp tasks in SRMs. TC’s room is good.
rajeshsr >>ACRush: In short, what is the strategy for becoming a good coder, according to u?
ACRush>> rajeshsr: Practice is the way.
Lingmum >>ACRush: How can we improve our speed of solving the problems,more problems?
ACRush >>Lingmum: More practice.
stormsky >>ACRush: do you often practice TC?and how to practice?
ACRush stormsky: Yes. But in fact, I prefer to doing past Regionals and finals.
sahiltiwari >>ACRush: how many hours you practise per day ?
ACRush >>sahiltiwari: 4-5
MohammadReza>> ACRush: What do you do to make your code becomes bugfree although the big size?
ACRush >>MohammadReza: test more tricky cases.(corner cases)
rajeshsr >>ACRush: Sorry to be repetitious, But I want to know what is the strategy of practice you employed? U select some random problems from OJs and solve or try to master a particular domain like DP by solving problems based on that or any other thing?
ACRush>> rajeshsr: set problems of past regionals and finals.
puneetkp444>> ACRush: Can you suggest some ways to improve problem solving abilities
ACRush>> puneetkp444: practice all kinds of problems.
alft7>> ACRush: what do you usually do before a very important competition, practise or something else?
ACRush>> alft7: practice until 3 days before it.
ferry>> ACRush: What is the hardest problem you’ve done?
ACRush>> ferry: I in WF2007
1. Polish Olympiad write-ups
2. Programming Pearls, it doesn’t really teach you programming, but it will show you how good programmers think and will get you interested
3. “Introduction to Algorithms” is a tough to read, but I read it all early on
“Introduction to Algorithms” is a perfect reference
and then there is “The Art of Programming”, an old classic, if you’re really tough 🙂 it’s all in assembly though, you need to be tough
Concrete Math is also a fantastic book, it gets really difficult at places
As for data structures and algorithms reference, “Introduction to algorithms” contains all theory you’ll need for a long while
4. USACO training program, it’s great, I did it, I learned a lot
5. easy problems (for you) teach you implementation skills
hard problems make you think
6. keep thinking first until you’re sure how the solution should work, and then you don’t have to keep trying, you just implement it from start to finish