**puzzles**

[Tutorial] A way to Practice Competitive Programming : From Rating 1000 to 2400+ - Codeforces

8 days ago by nhaliday

this guy really didn't take that long to reach red..., as of today he's done 20 contests in 2y to my 44 contests in 7y (w/ a long break)...>_>

tho he has 3 times as many submissions as me. maybe he does a lot of virtual rounds?

some snippets from the PDF guide linked:

1400-1900:

To be rating 1900, skills as follows are needed:

- You know and can use major algorithms like these:

Brute force DP DFS BFS Dijkstra

Binary Indexed Tree nCr, nPr Mod inverse Bitmasks Binary Search

- You can code faster (For example, 5 minutes for R1100 problems, 10 minutes for

R1400 problems)

If you are not good at fast-coding and fast-debugging, you should solve AtCoder problems. Actually, and statistically, many Japanese are good at fast-coding relatively while not so good at solving difficult problems. I think that’s because of AtCoder.

I recommend to solve problem C and D in AtCoder Beginner Contest. On average, if you can solve problem C of AtCoder Beginner Contest within 10 minutes and problem D within 20 minutes, you are Div1 in FastCodingForces :)

...

Interestingly, typical problems are concentrated in Div2-only round problems. If you are not good at Div2-only round, it is likely that you are not good at using typical algorithms, especially 10 algorithms that are written above.

If you can use some typical problem but not good at solving more than R1500 in Codeforces, you should begin TopCoder. This type of practice is effective for people who are good at Div.2 only round but not good at Div.1+Div.2 combined or Div.1+Div.2 separated round.

Sometimes, especially in Div1+Div2 round, some problems need mathematical concepts or thinking. Since there are a lot of problems which uses them (and also light-implementation!) in TopCoder, you should solve TopCoder problems.

I recommend to solve Div1Easy of recent 100 SRMs. But some problems are really difficult, (e.g. even red-ranked coder could not solve) so before you solve, you should check how many percent of people did solve this problem. You can use https://competitiveprogramming.info/ to know some informations.

1900-2200:

To be rating 2200, skills as follows are needed:

- You know and can use 10 algorithms which I stated in pp.11 and segment trees

(including lazy propagations)

- You can solve problems very fast: For example, 5 mins for R1100, 10 mins for

R1500, 15 mins for R1800, 40 mins for R2000.

- You have decent skills for mathematical-thinking or considering problems

- Strong mental which can think about the solution more than 1 hours, and don’t give up even if you are below average in Div1 in the middle of the contest

This is only my way to practice, but I did many virtual contests when I was rating 2000. In this page, virtual contest does not mean “Virtual Participation” in Codeforces. It means choosing 4 or 5 problems which the difficulty is near your rating (For example, if you are rating 2000, choose R2000 problems in Codeforces) and solve them within 2 hours. You can use https://vjudge.net/. In this website, you can make virtual contests from problems on many online judges. (e.g. AtCoder, Codeforces, Hackerrank, Codechef, POJ, ...)

If you cannot solve problem within the virtual contests and could not be able to find the solution during the contest, you should read editorial. Google it. (e.g. If you want to know editorial of Codeforces Round #556 (Div. 1), search “Codeforces Round #556 editorial” in google) There is one more important thing to gain rating in Codeforces. To solve problem fast, you should equip some coding library (or template code). For example, I think that equipping segment tree libraries, lazy segment tree libraries, modint library, FFT library, geometry library, etc. is very effective.

2200 to 2400:

Rating 2200 and 2400 is actually very different ...

To be rating 2400, skills as follows are needed:

- You should have skills that stated in previous section (rating 2200)

- You should solve difficult problems which are only solved by less than 100 people in Div1 contests

...

At first, there are a lot of educational problems in AtCoder. I recommend you should solve problem E and F (especially 700-900 points problem in AtCoder) of AtCoder Regular Contest, especially ARC058-ARC090. Though old AtCoder Regular Contests are balanced for “considering” and “typical”, but sadly, AtCoder Grand Contest and recent AtCoder Regular Contest problems are actually too biased for considering I think, so I don’t recommend if your goal is gain rating in Codeforces. (Though if you want to gain rating more than 2600, you should solve problems from AtCoder Grand Contest)

For me, actually, after solving AtCoder Regular Contests, my average performance in CF virtual contest increased from 2100 to 2300 (I could not reach 2400 because start was early)

If you cannot solve problems, I recommend to give up and read editorial as follows:

Point value 600 700 800 900 1000-

CF rating R2000 R2200 R2400 R2600 R2800

Time to editorial 40 min 50 min 60 min 70 min 80 min

If you solve AtCoder educational problems, your skills of competitive programming will be increased. But there is one more problem. Without practical skills, you rating won’t increase. So, you should do 50+ virtual participations (especially Div.1) in Codeforces. In virtual participation, you can learn how to compete as a purple/orange-ranked coder (e.g. strategy) and how to use skills in Codeforces contests that you learned in AtCoder. I strongly recommend to read editorial of all problems except too difficult one (e.g. Less than 30 people solved in contest) after the virtual contest. I also recommend to write reflections about strategy, learns and improvements after reading editorial on notebooks after the contests/virtual.

In addition, about once a week, I recommend you to make time to think about much difficult problem (e.g. R2800 in Codeforces) for couple of hours. If you could not reach the solution after thinking couple of hours, I recommend you to read editorial because you can learn a lot. Solving high-level problems may give you chance to gain over 100 rating in a single contest, but also can give you chance to solve easier problems faster.

oly
oly-programming
problem-solving
learning
practice
accretion
strategy
hmm
pdf
guide
reflection
advice
wire-guided
marginal
stylized-facts
speed
time
cost-benefit
tools
multi
sleuthin
review
comparison
puzzles
contest
aggregator
recommendations
objektbuch
time-use
growth
tho he has 3 times as many submissions as me. maybe he does a lot of virtual rounds?

some snippets from the PDF guide linked:

1400-1900:

To be rating 1900, skills as follows are needed:

- You know and can use major algorithms like these:

Brute force DP DFS BFS Dijkstra

Binary Indexed Tree nCr, nPr Mod inverse Bitmasks Binary Search

- You can code faster (For example, 5 minutes for R1100 problems, 10 minutes for

R1400 problems)

If you are not good at fast-coding and fast-debugging, you should solve AtCoder problems. Actually, and statistically, many Japanese are good at fast-coding relatively while not so good at solving difficult problems. I think that’s because of AtCoder.

I recommend to solve problem C and D in AtCoder Beginner Contest. On average, if you can solve problem C of AtCoder Beginner Contest within 10 minutes and problem D within 20 minutes, you are Div1 in FastCodingForces :)

...

Interestingly, typical problems are concentrated in Div2-only round problems. If you are not good at Div2-only round, it is likely that you are not good at using typical algorithms, especially 10 algorithms that are written above.

If you can use some typical problem but not good at solving more than R1500 in Codeforces, you should begin TopCoder. This type of practice is effective for people who are good at Div.2 only round but not good at Div.1+Div.2 combined or Div.1+Div.2 separated round.

Sometimes, especially in Div1+Div2 round, some problems need mathematical concepts or thinking. Since there are a lot of problems which uses them (and also light-implementation!) in TopCoder, you should solve TopCoder problems.

I recommend to solve Div1Easy of recent 100 SRMs. But some problems are really difficult, (e.g. even red-ranked coder could not solve) so before you solve, you should check how many percent of people did solve this problem. You can use https://competitiveprogramming.info/ to know some informations.

1900-2200:

To be rating 2200, skills as follows are needed:

- You know and can use 10 algorithms which I stated in pp.11 and segment trees

(including lazy propagations)

- You can solve problems very fast: For example, 5 mins for R1100, 10 mins for

R1500, 15 mins for R1800, 40 mins for R2000.

- You have decent skills for mathematical-thinking or considering problems

- Strong mental which can think about the solution more than 1 hours, and don’t give up even if you are below average in Div1 in the middle of the contest

This is only my way to practice, but I did many virtual contests when I was rating 2000. In this page, virtual contest does not mean “Virtual Participation” in Codeforces. It means choosing 4 or 5 problems which the difficulty is near your rating (For example, if you are rating 2000, choose R2000 problems in Codeforces) and solve them within 2 hours. You can use https://vjudge.net/. In this website, you can make virtual contests from problems on many online judges. (e.g. AtCoder, Codeforces, Hackerrank, Codechef, POJ, ...)

If you cannot solve problem within the virtual contests and could not be able to find the solution during the contest, you should read editorial. Google it. (e.g. If you want to know editorial of Codeforces Round #556 (Div. 1), search “Codeforces Round #556 editorial” in google) There is one more important thing to gain rating in Codeforces. To solve problem fast, you should equip some coding library (or template code). For example, I think that equipping segment tree libraries, lazy segment tree libraries, modint library, FFT library, geometry library, etc. is very effective.

2200 to 2400:

Rating 2200 and 2400 is actually very different ...

To be rating 2400, skills as follows are needed:

- You should have skills that stated in previous section (rating 2200)

- You should solve difficult problems which are only solved by less than 100 people in Div1 contests

...

At first, there are a lot of educational problems in AtCoder. I recommend you should solve problem E and F (especially 700-900 points problem in AtCoder) of AtCoder Regular Contest, especially ARC058-ARC090. Though old AtCoder Regular Contests are balanced for “considering” and “typical”, but sadly, AtCoder Grand Contest and recent AtCoder Regular Contest problems are actually too biased for considering I think, so I don’t recommend if your goal is gain rating in Codeforces. (Though if you want to gain rating more than 2600, you should solve problems from AtCoder Grand Contest)

For me, actually, after solving AtCoder Regular Contests, my average performance in CF virtual contest increased from 2100 to 2300 (I could not reach 2400 because start was early)

If you cannot solve problems, I recommend to give up and read editorial as follows:

Point value 600 700 800 900 1000-

CF rating R2000 R2200 R2400 R2600 R2800

Time to editorial 40 min 50 min 60 min 70 min 80 min

If you solve AtCoder educational problems, your skills of competitive programming will be increased. But there is one more problem. Without practical skills, you rating won’t increase. So, you should do 50+ virtual participations (especially Div.1) in Codeforces. In virtual participation, you can learn how to compete as a purple/orange-ranked coder (e.g. strategy) and how to use skills in Codeforces contests that you learned in AtCoder. I strongly recommend to read editorial of all problems except too difficult one (e.g. Less than 30 people solved in contest) after the virtual contest. I also recommend to write reflections about strategy, learns and improvements after reading editorial on notebooks after the contests/virtual.

In addition, about once a week, I recommend you to make time to think about much difficult problem (e.g. R2800 in Codeforces) for couple of hours. If you could not reach the solution after thinking couple of hours, I recommend you to read editorial because you can learn a lot. Solving high-level problems may give you chance to gain over 100 rating in a single contest, but also can give you chance to solve easier problems faster.

8 days ago by nhaliday

Task Archive - SZKOpuł

9 days ago by nhaliday

from POI: https://pinboard.in/u:nhaliday/b:598fa10ddfde

English translations for most problems are available in the old task archive interface

more on that: https://codeforces.com/blog/entry/60992

oly
oly-programming
puzzles
contest
quixotic
accretion
eastern-europe
usaco-ioi
unit
nostalgia
database
foreign-lang
anglo
language
multi
English translations for most problems are available in the old task archive interface

more on that: https://codeforces.com/blog/entry/60992

9 days ago by nhaliday

The world is chaos. Escape rooms make sense. - Vox

9 days ago by kevan

"So much of real life is taking actions that don't matter. [...] You're using your faculties and senses in ways that you're not accustomed to, and you’re impacting the world around you in ways that are not normal."

games
design
puzzles
9 days ago by kevan

Summer Maths Puzzles - Home Page | Isaac Newton Institute for Mathematical Sciences

14 days ago by Vaguery

Each weekday throughout August we will be publishing a new maths-based puzzle. They won't require sophisticated maths to solve, but equally they won't be easy. Discussing your ideas might help.

mathematical-recreations
puzzles
amusing
to-write-about
to-simulate
14 days ago by Vaguery

egnor/nutrimatic: The source behind nutrimatic.org.

tool
source
puzzles

22 days ago by iiridayn

The source behind nutrimatic.org. Contribute to egnor/nutrimatic development by creating an account on GitHub.

22 days ago by iiridayn

SVG Jigsaw Generation in Clojure – Bonnie Eisenman

art
clojure
generative
svg
puzzles

26 days ago by geetarista

Silly, terrible, no-good very-bad jigsaw puzzles. Featuring Voronoi diagrams, KD-trees, and Clojure.

26 days ago by geetarista

Timus Online Judge

5 weeks ago by nhaliday

more extensive status page than most judges

oly-programming
oly
programming
puzzles
database
problem-solving
accretion
russia
contest
unit
5 weeks ago by nhaliday