Download presentation
Presentation is loading. Please wait.
Published byCarol Mitchell Modified over 9 years ago
1
Exam Preparation Algorithms Course: Sample Exam SoftUni Team Technical Trainers Software University http://softuni.bg
2
2 The practical exam checks your skills to design and implement algorithms efficiently 4 problems for 6 hours Graphs, dynamic programming, recursion, combinatorics, greedy, … Automated judge system with real-time feedback: http://judge.softuni.bghttp://judge.softuni.bg Algorithms: Practical Exam
3
3 Group-Permutations: we are given n capital Latin letters. Generate all their permutations, so that the same letters stay together. Example: Example: n = 7, letters = { B, C, A, B, A, C, B }. Result: AABBBCC AACCBBB BBBAACC BBBCCAA CCAABBB CCBBBAA Sample Problem #1 – Combinatorics
4
4 Remove duplicate letters: { B, C, A, B, A, C, B } { A, B, C } Permute the letters and replace each letter with its original number of occurrences: ABC AABBBCC ACB AACCBBB BAC BBBAACC BCA BBBCCAA CAB CCAABBB CBA CCBBBAA Group-Permutations – Solution
5
5 Bridges: we have two sequences of points (natural numbers): north[0 … n-1] and south[0 … m-1] Connect with bridges as many as possible equal numbers from both sequences so that there are no crossing bridges Print the max number of bridges Sample Problem #2 – Dynamic Programming 25333182676 12534178256 22
6
6 Bridges – Solution 25333182676 12534178256 Assume f(x, y) = max bridges using north[0…x] and south[0…y] f(x, y) = 0 when x < 0 or y < 0 f(x, y) = max ( f(x-1, y), f(x, y-1) ; 1 + f(x-1, y), 1 + f(x, y-1) when north[x] == south[y] )
7
7 You are given a directed graph. Find all cycles of length 3. Example: Cycles (in lexicographical order): {0 1 6}, {0 13 2}, {0 13 9}, {4 6 10}, {6 11 8} Sample Problem #3 – Graphs 10 1 2 8 9 5 3 4 11 6 13 0 7 12
8
8 For each 3 vertices {u, v, w} check if they form a loop To skip the duplicates, require that u < v and u < w To improve performance, use sorted adjacency list for each vertex Cycles of Length 3 – Solution for u = 0 … n-1 for v = children-in-increasing-order(u) where u < v for w = children-in-increasing-order(v) where u < w if edge-exists(w u) print { u v w } 9 130 u v w
9
9 Line Inverter: We are given a board of size n x n Each cell holds black ( 0 ) or white ( 1 ) cell At each step we can invert a row or invert a column Find the minimal number of inversions to make the board black Or print -1 if this is not possible Sample Problem #4 – Other
10
10 Line-Inverter problem has a simple greedy solution: 1. Invert all rows that have a white cell in the first column 2. Invert all columns that have a white cell in the first row 3. If the board is black, we have solution, otherwise no solution Another solution is found by: First inverting the first column, then running the previous algorithm Take the better of these two algorithms Line Inverter: Solution
11
? ? ? ? ? ? ? ? ? Exam Preparation https://softuni.bg/trainings/1194/Algorithms-September-2015
12
License This course (slides, examples, labs, videos, homework, etc.) is licensed under the "Creative Commons Attribution- NonCommercial-ShareAlike 4.0 International" licenseCreative Commons Attribution- NonCommercial-ShareAlike 4.0 International 12 Attribution: this work may contain portions from "Fundamentals of Computer Programming with C#" book by Svetlin Nakov & Co. under CC-BY-SA licenseFundamentals of Computer Programming with C#CC-BY-SA "Data Structures and Algorithms" course by Telerik Academy under CC-BY-NC-SA licenseData Structures and AlgorithmsCC-BY-NC-SA
13
Free Trainings @ Software University Software University Foundation – softuni.orgsoftuni.org Software University – High-Quality Education, Profession and Job for Software Developers softuni.bg softuni.bg Software University @ Facebook facebook.com/SoftwareUniversity facebook.com/SoftwareUniversity Software University @ YouTube youtube.com/SoftwareUniversity youtube.com/SoftwareUniversity Software University Forums – forum.softuni.bgforum.softuni.bg
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.