If you want to be a very serious competitive programmer, I will go a bit deeper into the details of what all math you might ever need for competitive programming.

Arithmetic and Geometry:-

Integers, operations(including exponentiation), comparison

Basic property of integers(sign, parity, divisibility)

Basic modular arithmetic(addition, subtraction, multiplication, division)

Prime numbers(Its a vast topic)

Fractions and percentages

Line, line segment, angle, triangle, rectangle, square, circle(and specially way to represent them in your code)

Point, vector, coordinates in a plane

Polygon(vertex, side/edge, simple, convex, inside, area)

Euclidean distances

Pythogorean theorem(There are pretty diverse use of this theorem)

In some questions you might need Fermat’s Little Theorem, Chinese remainder theorem, or may need to use the Euler function etc. You need to get better in number theory. I have encountered some problems on codechef which need these myself.

Knowing some techniques like Euclidean Algorithm and fast exponentiation are considered to be a prerequisite in some contests.

Some computational geometry techniques like Graham Scan and convex hull.

Discrete Structures:-

Functions, Relations and Sets

Functions(surjections, injections, inverses, composition)

Relations(reflexivity, symmetry, transitivity, equivalence relations, total/linear order relations, lexicographic order)

Sets(cardinality, inclusion/exclusion, complements, Cartesian products, power sets)

Basic Logic

First-order logic

Logical connectives(including their basic properties)

Truth Tables

Universal and Existential quantification

Modus ponens and Modus tollens(Not to get intimidated by the names :P)

Proof techniques(You don’t need them too rigorously)

Basics of Counting

Counting arguments (sum and product rule, arithmetic and geometric progressions, Fibonacci numbers)

Permutations and combinations (basic definitions)

Factorial function, binomial coefficients

Inclusion-exclusion principle

Pigeonhole principle

Pascal’s identity, Binomial theorem

Solving recurrence relations

Burnside Lemma

Graphs and trees

Trees and their basic properties, rooted trees

Undirected graphs (degree, path, cycle, connectedness, Euler/Hamilton path/cycle, handshaking lemma)

Directed graphs (in-degree, out-degree, directed path/cycle, Euler/Hamilton path/cycle)

Spanning trees

Traversal strategies

‘Decorated’ graphs with edge/node labels, weights, colors

Multigraphs, graphs with self-loops

Bipartite graphs

Planar graphs

Probability theory

Linear Algebra(including but not limited to)

Matrix multiplication, exponentiation, inversion, and Gaussian elimination

Fast Fourier transform

Even though, many of these topics are not to be mastered rigorously, some are prerequisites and competitive programmers should have the basic knowledge of at least most of them to be among the top tier of programmers.

I hope this helped

Happy Coding!

More at: https://www.quora.com/What-are-the-skills-required-to-crack-Google-Code-Jam-or-Google-APAC