Need advice for mathematics and problem solving skill

hiii all

i need some serious advice . i m very bad at mathematics and problem solving skill . i m thinking to start with basic of 11th and 12th maths syllubus of NCERT , am confused whether i m right or wrong i need clarity on this… and plese suggest some excellent books …
is gate syllabus for maths is enough for competitive programming like calculus, discrete mathematics , linear algebra ???

Most of the time questions involve very basic level level of maths which we learn at 6-7-8th class except the topics like AP, Probability and PNC.
So if you really want to study maths I suggest you to read these three topics only right now at basic level.

1 Like

You don’t need to cover entire mathematics. Only some parts like combinatorics, probability, progressions, discrete mathematics, number theory, induction. As far as increasing problem solving skills is concerned, you can do that by practicing lots of programming problems.
I would say you can do it without any book just by reading good blogs on these topics. But if you want to read a book, you can try Discrete Mathematics and it’s Applications by Rosen.


thank you shivam … for answer i was very confused

1 Like

thanks ankur for clarity i was very very scared for my maths and problem skills regarding thanks for answer


Most of the mathematics based problems in Competitive Programming that I have solved have been based on Discrete Mathematics. Kenneth Rosen is a good book for that. Learn number theory, Permutations and Combinations, generating functions and Probability.

There is reasoning based Math. Proving things and having strong conjectures that help you solve seemingly tough problems with no pre-requisites. Learn how to prove things properly. It helps you to be sure about what you are doing. Math is a way of thinking more than anything else.

Graph theory is just Math. I recently learnt Max Flow problem, Min Cost Max Flow problem, etc… Analysing the algorithms and proving their time complexities was just an exercise in Math.

FFT is based on complex numbers. The good thing about FFT is even if you don’t know much about the details you can use it a black box for polynomial multiplication. I learnt it using codeforces blogs, with all details, but the details haven’t been too useful when application of it in problems is concerned.

Convex Hull Trick is an optimisation technique generally used in dynamic programming problems. Its based on simple geometry. It won’t require looking into mathematics textbooks.

There are mathematical tricks that you’ll discover while doing competitive programming. I’m not sure if a book will teach you those things. Like some optimisations based on sums, time complexities etc…

Of course I know there is a lot of stuff I don’t know.
I don’t know about Linear Algebra applications as I haven’t solved any related problem. Although I have come across some problems based on Gaussian Elimination. I have heard about some more involved and rare topics and will look into them as and when they arise in some problems that I’m unable to solve. You can’t learn everything in one shot.

I’d say for starters learning Discrete Mathematics should be good. Learning to prove things will equip you with all you need to learn to learn any mathematics based topic.

I’d advise to learn something then solve a few problems, hit a block on some problem where you need to know some more stuff. Then learn that stuff and go on. You can’t learn everything effectively at once. This is not just for Math, its for any topic. Of course, just my opinion.


This website has some pretty good collection of competitive programming material


thanks bro for writing a long post and giving clarity …i was really scared of maths and problem solving thanks for answer

thanks bro for the link

thanks megatron - sahil , for the clarity and detailed information …its really helpful and i m feeling i can do this now thanks again before this i had no idea what to do and how to do things …thank you and congrats for your hard work and 5 star on codechef …

1 Like