Please read the new rule regarding the restriction on the use of AI tools. ×

KhaledElgendy's blog

By KhaledElgendy, history, 14 months ago, In English

Hello guys I'm trying to be good at counting using combinatorics.

Can anyone recommend some tutorials/problems for me

  • Vote: I like it
  • +5
  • Vote: I do not like it

»
14 months ago, # |
  Vote: I like it +3 Vote: I do not like it

You can use book named "Maths of choice" by Ivan Morton Niven. It is very useful book.

»
14 months ago, # |
Rev. 3   Vote: I like it +3 Vote: I do not like it

you can use this guide to find resources and problems in it! USACO Guide. find it in : Gold -> Math -> combinatorics.

»
14 months ago, # |
  Vote: I like it +14 Vote: I do not like it

Counting in combinatorics is as unspecific as loops in programming, but I surmise that the right choice for you is to study combinatorics with some accent on enumerative combinatorics, which is also a vast subject, actually.

The first thing is to gain some fundamental knowledge. I highly recommend working through the book (including exercises) M. Bona, "A walk through Combinatorics", to achieve a more or less good background. Nonetheless, the classical text is R. Stanley's "Enumerative Combinatorics", both volumes.

This is obviously a large portion of work to do and requires systemic study and self-discipline, but the most challenging part, I think, is to get used to a few basic principles (form a basis of your knowledge) and then everything else will be much easier.

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

    Can you suggest any book for number theory.

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

      In the context of competitive programming, one does not really need much apart from prime factorisation of a number, (extended) Euclid's algorithm, and multiplicative function theory (for example, for Möbius inversion and some sieves).

      To get used to basic number-theoretic arguments, I recommend going through some olympiad mathematical problems because they are solvable in an elementary setting, unlike most other readings in number theory. It allows one to get a number of ideas, which is also helpful in competitive programming.

      1. Countless olympiad handouts on the Internet.

      2. A. Khurmi, Modern Olympiad Number Theory

      3. P. Bornsztein, X. Caruso, P. Nolin, M. Tibouchi, Cours d'arithmètique (it is really outstanding to me!)

      Multiplicative function theory is usually covered comprehensively in books on analytic number theory, see first sections of (increasing of difficulty)

      1. I. M. Vinogradov, Elements of Number Theory (particularly section 2)

      2. T. Apostol, Introduction to analytic number theory (a classical undergraduate course)

      3. H. Iwaniec, E. Kowalski, Analytic Number Theory (this is an excellent graduate book that covers many modern topics, but I do not really recommend reading it without extensive background).

»
14 months ago, # |
  Vote: I like it -14 Vote: I do not like it

See codechef learning section.

»
14 months ago, # |
  Vote: I like it -20 Vote: I do not like it

One of the good ways to learn is to solve some problems. You can go to the problemset on codeforces, add combinatorics tag and start solving. If you failed to solve a problem, read the editorial ans maybe you can find a mentioned principle like pigenhole principle. After that you can search about that principle and start to learn it. I recommend using notebook while learning.