What math topics are needed for competitive programming?

...

Other urls found in this thread:

cses.fi/book.html
twitter.com/NSFWRedditVideo

Prove 1 = 0

>he can't sum all primes less than 2 million

LOL mathlet

>competitive programming
what does that mean, having a job?

>competitive programming

The basics I guess, algebra, analysis, stochastics, etc.

I can't tell you what math you need to know , but I can provide much more valuable requirements:
1. Fingerless gloves
2. Frosted tips
3. Porkpie hat
4. Black button up flame shirt
5. Yoga ball seat


Thank me later

>competitive programming

Of course these basic Math
Numbers
Algebra (Linear algebra&&Matrices&&Geometry)
Probability and Analysis
Trigonometry
Logarithm
Calculus

I'd like to say if you interested in Machine Vision and AI blah blah should focus Algebra and Analysis Probability branch, most of the Algorithm are based on these basic knownlege any way.

But If you work in a more competitive future that included Control system and Robotics, should consider all of them, they are very important.

you don't need to know math to program

>fell for the competitive programming meme

but for real

know Algebra 1/2
know Calculus
Calculus is optional but it helps at times

I forgot to mention, you should always have your second language for prototyping (like Matlab-Octave, Python, etc) these are good for realise your goal and testing algorithm. then finish the final product with C or C++ or something.

Before learning anything, if you want to be competive.

And here is the true procedure if you want to be sucessful, I have become a much better and competitive person thank to this procedure:

1st Realize your goal, what do you love to apply your skills IRL
2nd Find someone you admire in your field and befriend with him/her think of that person as your rival, try to copy and surpass that person.
3rd After reaching near that person place, try to break free and make something genuine of your own.

What math books do you recommend for this? Also, why C++ over Java?

James Stewart pre-Calculus and Calculus series for calculus either Traditional or Early Transcendentals both fine. You got most of these in there.

For Linear Algebra I recommend Linear Algebra and Its Applications 4thEdition by David C.Lay

I also recommend Math is Fun site, they will help you a lot in understand Math.

IOI is C++ only

If you plan on going to national levels C++ is the only option

Acutally most of these popular language are fine, if you understand mathematics basic and Fundamentals of algorithm. It doesn't really matters what language you use, they are just tools so choose what you can have fun with and have strong support community.

For pure competitive programming, you need to know somewhat advanced discrete math with focus on combinatorics, probability, and number theory.

So no calculus?

Yes you do need calculus. Though there is many way to solve a problem, Calculus is one of the easiest and effeciency when using computer.

How about I asked you to write a program to estimated the boundary line of objects?

How about I ask you to solve a regression problem of a model in real life?

You can be an hobbyist programmer without any calculus knownledge, but to be competitive you should know the basic of our world. We engineer-programmer are magician after all. How can we do magic without knowing basic?

Set theory is the only mathematics you need
Everything else is just applied set theory

There are few math things that you need to know:
Things connected to primes:
>Eratostenes sieve
>Prime checking techniques
>Prime rings
>Chinese remainder theorem
>Euler's theorem (Number theory)
>Fermat's theorem

Algebra for geometry and shit:
>Cross product, dot product, rotation matrix, matrix multiplication
>Finding intersections between segments (by cross product, or by matrix determinant)

Miscellaneous:
>Rusian peasants multiplication
>Finding discrete logarithm

Source: successful participant

What books do you recommend studying

None - books are useless.
For every topic - difficult or easy - go check out codeforces/topcoder tutorials. Simpler shit is always explained by some pajeet on youtube.

It's a thing. There are programming competitions. You're given a problem description and have to write a program that solves it. The "best" solution wins.

What's competitive programming?

You should be able to solve this
For this problem you will compute various running sums of values for positive integers.

Input
The first line of input contains a single integer P, (1 ≤ P ≤ 10000), which is the number of data sets that follow. Each data set should be processed identically and independently.

Each data set consists of a single line of input. It contains the data set number, K, followed by an integer N, (1 ≤ N ≤ 10000).

Output
For each data set there is one line of output. The single output line consists of the data set number, K, followed by a single space followed by three space separated integers S1, S2 and S3 such that:
S1 = The sum of the first N positive integers. S2 = The sum of the first N odd integers.
S3 = The sum of the first N even integers.

Sample Input
3
1 1
2 10
3 1001
Sample Output
1 1 1 2
2 55 100 110
3 501501 1002001 1003002

Get the competitive programmers handbook and find out cses.fi/book.html (free)

AOPS