K.And.'s blog

By K.And., 11 years ago, In English

Hello, i am beginner in algorithmic world.So can anyone please suggest me materials for preparing for algorithmic contest , it would be very nice if someone could share links of online material,ebook,etc. and also share their advices/suggestions with me :) And also tell me about various coding contests (like this,codeforces).

Also , basically i know english but you can reply in your own language too as i may google translate it :P

Thankyou in advanced :)

  • Vote: I like it
  • -3
  • Vote: I do not like it

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

    Yeah, the best way to practice is on real tasks, preferrably some that can have hints (tags or tutorials in this case). I learned contest programming this way.

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

I learned programming using the USACO training pages. Tasks go from easiest to hardest. There are 6 chapters, and in every one of them, you learn new algorithms to solve the problems in that chapter.

For example, in Chapter 1 you learn Greedy approach and you have some implementation problems. On chapter 2, you learn Dynamic Programming, a general view of Graph and Dijkstra's Algorithm. In chapter 3, you learn some Computation Geometry, Minimum Spanning Trees, etc..

I think it's an excellent resource. Of course, there's also the USACO Contests, that are held from November to April every year, once a month, divided in three categories (Bronze, Silver, Gold). Scoring is IOI-style, which is fairer in my opinion and easier, because you don't need to solve 100% of test cases to be scored.

Try it out.

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

    @diego_v1 , thanks for advice bro :) even i had started them out ,i have reached till Ch:3 and got stuck there but algorithms aquired till then didn't help me in any of contests till now in codeforces/codechef/Indian Olympiads,etc so i had abondened but after your advice i think i will start back USACO training pages :)

    @Na2a , @ Xellos :Thanks for your advices ,i will definatly try them out :)

    And is practising and learning via solving problems and looking into others solution is better or learning theory first then trying them to apply is better ? (and yeah vote up+1 to all :) )

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

      I think everything is important. You learn to solve problems by solving problems, but in order to solve those problems, you need to have knowledge, and the knowledge is acquired by studying theory (ie: algorithms, data structures, etc.).

      Maybe the USACO training pages weren't very useful to you because the type of problems in the USACO/IOI are different from the ones used here in Codeforces. In ACM/ICPC, the problems are much more technical/mathematic/ugly than in USACO/IOI. I personally enjoy USACO contests MUCH MUCH more than Codeforces one, because they use IOI scoring system and because of the type of problems they choose.

      Anyway, I recommend you to continue the training on USACO, and if you get stuck at any particular problem, I'll gladly help you out.

      Keep it up!

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

      USACO seems to kick off quite slowly (a lot of brute forces or not optimal limits in the early chapters), so that takes a lot of time.

      I personally learned much more from theory first, but that's because I was totally failing at actual programming :D but I believe if you have rough basics from theory, it's easier to learn by solving actual tasks, since you need to figure out how to work out the algorithms. Most tasks nowadays need more than known algorithms to solve, so this way, you learn to create your own / improve existing algorithms.