Fahim_2000's blog

By Fahim_2000, history, 23 months ago, In English

I solved a few problems in code forces and I am planning to participate in the div 3 contest, how much should I know before participating in div 3 contests?

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

| Write comment?
23 months ago, # |
  Vote: I like it +11 Vote: I do not like it

Read this

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

As we all know div3s are very hard, you have to know a lot of complicated things to start giving contest. Complicated concepts like arrays loops conditions should be in your bag xD.

well jokes apart, just give contest there is nothing to loose for you, you will know what div3 is like after giving contest.

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

There's no need to wait specifically for div 3 contests. Yes, the problems are somewhat easier, but div3 contests are also infested by an abnormally large number of smurfs (blue+ guys registering for the contest with their second newly created grey accounts). The "trusted participants" filtering at least removes some of them from the scoreboard, but rating update calculation still takes smurfs into account and they eat your rating. If you are concerned about your rating, then div 3 contests are not necessarily a good choice. You won't lose much by just participating in div 2 contests and you will get up to speed much faster.

As for the topics that may show up in div 2 / div 3 codeforces contests, check this blog: https://codeforces.com/blog/entry/80049 (hint: codeforces problems A-D are mostly adhoc and it's very uncommon to see any advanced data structures or algorithms in them).

And if you want to have fun solving easy problems during a real contest, then AtCoder ABC contests and CodeChef starter contests are a good alternative. Ironically, these platforms will allow you to get familiar with more advanced algorithms in an easy way (the problems are not designed to be very difficult puzzles).

23 months ago, # |
  Vote: I like it +22 Vote: I do not like it


23 months ago, # |
  Vote: I like it +1 Vote: I do not like it

You can give a contest and know it for yourself. Usually, the first 3 problems in div 3 don't require any prerequisites (don't take my word for it since it's Codeforces). Next 1 — 2 problems may require idea of greedy, binary search, basic Number theory or basic graph algos like dfs or bfs. (It's still majorly observation reliant)

2 months ago, # |
  Vote: I like it -34 Vote: I do not like it

Participating in Division 3 (Div. 3) contests in competitive programming typically requires a solid understanding of basic programming concepts and some familiarity with algorithms and data structures. Here are some topics you should know before participating in Div. 3 contests:

Basic Programming Constructs:

Variables, data types, and operators. Conditional statements (if-else). Loops (for, while). Arrays and basic array operations. Functions and procedures. Input/Output (I/O):

Reading input from standard input (stdin). Writing output to standard output (stdout). Handling input constraints. Mathematics:

Basic arithmetic operations. Number theory (prime numbers, factors, GCD, LCM). Basic combinatorics (permutations, combinations). Handling integers and simple mathematical calculations. Arrays and Strings:

Array manipulation (indexing, slicing). String manipulation (concatenation, substring, etc.). Basic string algorithms (searching, sorting, etc.). Data Structures:

Arrays, linked lists, and dynamic arrays. Stacks and queues. Basic understanding of trees (binary trees, binary search trees). Basic knowledge of graphs (adjacency lists, adjacency matrices). Searching and Sorting:

Linear search and binary search. Basic sorting algorithms (e.g., bubble sort, insertion sort, selection sort). Sorting algorithms with better time complexity (e.g., merge sort, quicksort). Recursion:

Understanding recursive functions. Solving problems using recursion. Complexity Analysis:

Understanding Big O notation and time complexity. Analyzing the time complexity of algorithms. Greedy Algorithms:

Understanding the greedy choice property. Basic greedy algorithms (e.g., activity selection, coin change). Dynamic Programming:

Understanding the concept of memoization and tabulation. Basic dynamic programming problems (e.g., Fibonacci series, knapsack problem). Graph Algorithms:

Basic graph traversal algorithms (e.g., depth-first search, breadth-first search). Understanding simple graph problems (e.g., finding connected components, finding cycles). Bit Manipulation:

Basic operations like bitwise AND, OR, XOR, shifting, etc. Solving problems using bitwise operations. Disjoint Set Union (Union-Find):

Understanding the basic operations (union, find) and its applications. Mathematical Libraries and Functions:

Familiarity with standard mathematical functions and libraries available in your chosen programming language. Remember, Div. 3 contests are designed for beginners or those who are still building their foundation in competitive programming. Practice regularly, work on simple problems, and gradually build your skills. Participating in online judges like Codeforces, AtCoder, or LeetCode can be a great way to practice and improve.