0% found this document useful (0 votes)
48 views

Programa de Studiu Pentru Concursurile de IT (Gen Olimpiade) 1.programming Techniques

This document outlines a program of study for IT competitions that includes 14 topics: 1) programming techniques, 2) algorithm complexity analysis, 3) sorting and searching, 4) data structures, 5) dynamic programming, 6) graph algorithms, 7) algorithm design topics, 8) range queries, 9) tree algorithms, 10) mathematics, 11) advanced graph algorithms, 12) geometry, 13) string algorithms, and 14) additional topics. Each topic covers common algorithms, data structures, and problems addressed within that area. The goal is to prepare students with a wide range of algorithms and data structure knowledge needed to solve complex problems in competitions.

Uploaded by

Adrian Iosif
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views

Programa de Studiu Pentru Concursurile de IT (Gen Olimpiade) 1.programming Techniques

This document outlines a program of study for IT competitions that includes 14 topics: 1) programming techniques, 2) algorithm complexity analysis, 3) sorting and searching, 4) data structures, 5) dynamic programming, 6) graph algorithms, 7) algorithm design topics, 8) range queries, 9) tree algorithms, 10) mathematics, 11) advanced graph algorithms, 12) geometry, 13) string algorithms, and 14) additional topics. Each topic covers common algorithms, data structures, and problems addressed within that area. The goal is to prepare students with a wide range of algorithms and data structure knowledge needed to solve complex problems in competitions.

Uploaded by

Adrian Iosif
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Programa de studiu pentru concursurile de IT (gen olimpiade)

1.Programming Techniques
Input and Output
Working with Numbers
Shortening Code
Recursive Algorithms (Subsets, Permutations)
Backtracking (examples)
Bit Manipulation&Bit Operations
Representing Sets

2.Complexity Analysis of Algortims (Efficiency)


Time Complexity
Calculation Rules
Common Time Complexities
Estimating Efficiency
Examples (Maximum Subarray Sum, Two Queens Problem)

3.Sorting and Searching


Sorting Algorithms
Bubble Sort
Merge Sort
Sorting Lower Bound
Counting Sort
Sorting in Practice
Solving Problems by Sorting
Sweep Line Algorithms
Scheduling Events
Tasks and Deadlines
Binary Search
Implementing the Search
Finding Optimal Solutions

4.Data Structures
Dynamic Arrays
Vectors
Iterators and Ranges
Other Structures
Set Structures
Sets and Multisets
Maps
Priority Queues
Policy-Based Sets
Set Versus Sorting
Map Versus Array
Priority Queue Versus Multiset

5.Dynamic Programming
Basic Concepts
Finding an Optimal Solution
Counting Solutions
Examples
Longest Increasing Subsequence
Paths in a Grid
Knapsack Problems
From Permutations to Subsets
Counting Tilings

6.Graph Algorithms
Basics of Graphs
Graph Terminology
Graph Representation
Graph Traversal
Depth-First Search
Breadth-First Search
Applications
Shortest Path
Bellman–Ford Algorithm
Dijkstra’s Algorithm
Floyd–Warshall Algorithm
Directed Acyclic Graphs
Topological Sorting
Dynamic Programming
Successor Graphs
Finding Successors
Cycle Detection
Minimum Spanning Trees
Kruskal’s Algorithm
Union-Find Structure
Prim’s Algorithm

7.Algorithm Design Topics


Bit-Parallel Algorithms
Hamming Distances
Counting Subgrids
Reachability in Graphs
Amortized Analysis
Two Pointers Method
Nearest Smaller Elements
Sliding Window Minimum
Finding Minimum Values
Ternary Search
Convex Functions
Minimizing Sums

8.Range Queries
Queries on Static Arrays
Sum Queries
Minimum Queries
Tree Structures
Binary Indexed Trees
Segment Trees
Additional Techniques

9.Tree Algorithms
Basic Techniques
Tree Traversal
Calculating Diameters
All Longest Paths
Tree Queries
Finding Ancestors
Subtrees and Paths
Lowest Common Ancestors
Merging Data Structures
Advanced Techniques
Centroid Decomposition
Heavy-Light Decomposition

10.Mathematics
Number Theory
Primes and Factors
Sieve of Eratosthenes
Euclid’s Algorithm
Modular Exponentiation
Euler’s Theorem
Solving Equations
Combinatorics
Binomial Coefficients
Catalan Numbers
Inclusion-Exclusion
Burnside’s Lemma
Cayley’s Formula
Matrices
Matrix Operations
Linear Recurrences
Graphs and Matrices
Gaussian Elimination
Probability
Working with Events
Random Variables
Markov Chains
Randomized Algorithms
Game Theory
Game States
Nim Game
Sprague–Grundy Theorem

11.Advanced Graph Algorithms


Strong Connectivity
Kosaraju’s Algorithm
2SAT Problem
Complete Paths
Eulerian Paths
Hamiltonian Paths
Applications
Maximum Flows
Ford–Fulkerson Algorithm
Disjoint Paths
Maximum Matchings
Path Covers
Depth-First Search Trees
Biconnectivity
Eulerian Subgraphs

12.Geometry
Geometric Techniques
Complex Numbers
Points and Lines
Polygon Area
Distance Functions
Sweep Line Algorithms
Intersection Points
Closest Pair Problem
Convex Hull Problem

13.String Algorithms
Basic Topics
Trie Structure
Dynamic Programming
String Hashing
Polynomial Hashing
Applications
Collisions and Parameters
Z-Algorithm
Constructing the Z-Array
Applications
Suffix Arrays
Prefix Doubling Method
Finding Patterns
LCP Arrays

14.Additional Topics
Square Root Techniques
Data Structures
Subalgorithms
Integer Partitions
Mo’s Algorithm
Segment Trees Revisited
Lazy Propagation
Dynamic Trees
Data Structures in Nodes
Two-Dimensional Trees
Treaps
Splitting and Merging
Implementation
Additional Techniques
Dynamic Programming Optimization
Convex Hull Trick
Divide and Conquer Optimization
Knuth’s Optimization
Miscellaneous
Meet in the Middle
Counting Subsets
Parallel Binary Search
Dynamic Connectivity

You might also like