Contest programming. Linear data structures. Maksym Planeta
|
|
- Jocelin McCarthy
- 5 years ago
- Views:
Transcription
1 Contest programming Linear data structures Maksym Planeta /2
2 Table of Contents Organisation Linear Data Structures Long arithmetic Practice 2/2
3 Update on organisation 11 weeks 9 exercises: Introduction lectures + exercises A practice session Contest on June, 16th After Lange Nacht der Wissenschaft /2
4 Updated outline 1. Introduction 2. Linear data structures. Long arithmetic.. Greedy and Divide and conquer algorithms. Dynamic programming. 4. Algorithms on string. Sorting and searching. 5. Computational geometry. Floating point arithmetic. 6. Mathematical and combinatorial problems.. Algorithms on graphs 8. Algorithms on graphs 9. Practice session 10. Contest 4/2
5 Updated outline 1. Introduction 2. Linear data structures. Long arithmetic.. Greedy and Divide and conquer algorithms. Dynamic programming. 4. Algorithms on string. Sorting and searching. 5. Computational geometry. Floating point arithmetic. 6. Mathematical and combinatorial problems.. Algorithms on graphs 8. Algorithms on graphs 9. Practice session 10. Contest 4/2
6 Linear data structures std :: vector<int> std :: vector<bool> int array [4] std :: array<int, 4> std :: bitset <444> 5/2
7 Searching std :: lower_bound std :: upper_bound std :: binary_search std :: find std :: max_element std :: min_element 6/2
8 Sorting std :: sort std :: partial_sort std :: stable_sort /2
9 Permutations std :: next_permutation std :: prev_permutation 8/2
10 Jolly Jumpers Problem Statement A sequence of n > 0 integers is called a jolly jumper if the absolute values of the difference between successive elements take on all the values 1 through n 1. For instance, is a jolly jumper, because the absolutes differences are, 2, and 1 respectively. The definition implies that any sequence of a single integer is a jolly jumper. You are to write a program to determine whether or not each of a number of sequences is a jolly jumper. 9/2
11 Jolly Jumpers (contd.) Input Each line of input contains an integer n 000 followed by n integers representing the sequence. Output For each line of input, generate a line of output saying Jolly or Not jolly. Sample Input Sample Output Jolly Not Jolly 10/2
12 Jolly Jumpers (Solution) #i n c l u d e < b i t s / s t d c ++.h> using namespace s t d ; #d e f i n e N 000 i n t j o l l y [N ] ; i n t main ( ) { i n t n, a, b ; } w h i l e ( s c a n f ( "%d %d ", &n, &a ) > 0) { // Body f o l l o w s } 11/2
13 Jolly Jumpers (Solution) // The body f i l l ( j o l l y, j o l l y + N, 0 ) ; f o r ( i n t i = 1 ; i < n ; i ++, a = b ) { s c a n f ( "%d ", &b ) ; j o l l y [ abs ( a b )]++; } auto f = f i n d _ i f ( j o l l y +1, j o l l y + n, [ ] ( i n t count ) { r e t u r n count!= 1 ; } ) i f ( n == 1 f == ( j o l l y + n ) ) { cout << " J o l l y \n" ; } e l s e { cout << " Not j o l l y \n " ; } 12/2
14 Linear data structures N-dimensional arrays Vector of vectors of vectors... 1D-vector with proper indexing Row major Column major Heaps Trees Queues 1/2
15 Disjoint Sets Set of sets Sets may change Find which set an item belongs to Merge sets efficiently 14/2
16 Disjoint Sets: Operations Make-Set(x) Creates a set with a single element x Union(x, y) Unite sets with elements x and y Find-Set(x) Return a representative element of the set containing x 15/2
17 Disjoint Sets: Connected components Connected-Components(G) 1 for each vertex v G.V 2 Make-Set(v) for each edge (u, v) G.E 4 if Find-Set(u) Find-Set(v) 5 Union(u, v) Same-Components(G) 1 if Find-Set(u) == Find-Set(v) 2 return True else return False 16/2
18 Disjoint Sets: Implementation Make-Set(x) 1 x.p = x 2 x.rank = 0 Union(x, y) 1 Link(Find-Set(x), Find-Set(y)) Link(x, y) 1 if x.rank > y.rank 2 y.p = x else x.p = y 4 if x.rank == y.rank 5 y.rank = y.rank + 1 Find-Set(x) 1 if x x.p 2 x.p = Find-Set(x.p) return x.p 1/2
19 Range Minimum Queries Given an array a 0... a n Find a minimum value in range [i, j] Trivial algorithm complexity O(n) With m queries the complexity is O(mn) Possible complexity: O(n + m log n) 18/2
20 Segment Tree Build a tree with O(2n) nodes [0, ] [0, ] [4, ] [0, 1] [2, ] [4, 5] [6, ] [0, 0] [1, 1] [2, 2] [, ] [4, 4] [5, 5] [6, 6] [, ] Figure: Segment Tree 19/2
21 Segment Tree: Structure Mark a parent for each node Figure: Segment Tree 20/2
22 Segment Tree: Query Execute a query RMQ(, 6) Figure: Segment Tree 21/2
23 Segment Tree: Query Execute a query RMQ(, 6) Figure: Segment Tree 21/2
24 Segment Tree: Query Execute a query RMQ(, 6) Figure: Segment Tree 21/2
25 Segment Tree: Query Execute a query RMQ(, 6) Figure: Segment Tree 21/2
26 Segment Tree: Query Execute a query RMQ(, 6) Figure: Segment Tree 21/2
27 Segment Tree: Query Execute a query RMQ(, 6) Figure: Segment Tree 21/2
28 Segment Tree: Query Execute a query RMQ(, 6) Figure: Segment Tree 21/2
29 Segment Tree: Query Execute a query RMQ(, 6) Figure: Segment Tree 21/2
30 Segment Tree: Query Execute a query RMQ(, 6) Figure: Segment Tree 21/2
31 Segment Tree: Building Build-Segments(p, L, R) 1 if L == R 2 tree[p] = L else Build-Segments(Left(p), L, L+R 4 Build-Segments(Right(p), L+R 2 5 p 1 = tree[left(p)] 6 p 2 = tree[right(p)] if value[p 1 ] value[p 2 ] 8 tree[p] = p 1 9 else tree[p] = p 2 2 ) + 1, R) 22/2
32 Segment Tree: Querying Range-Min-Query(p, L, R, i, j) 1 if i > R or j < L 2 return nil if L i and R j 4 return tree[p] 5 p 1 = Range-Min-Query(Left(p), L, (L + R)/2, i, j) 6 p 2 = Range-Min-Query(Right(p), (L + R)/2 + 1, R, i, j) if p 1 == nil 8 return p 2 9 if p 2 == nil 10 return p 1 11 if value[p 1 ] value[p 2 ] 12 return p 1 1 else return p 2 2/2
33 Long arithmetic java. math.biginteger add subtract pow modpow multiply divide 24/2
34 Practice Solve following set of problems in a group: Mapmaker Searching Quickly ID Codes Friends Very Easy!!! Ferry Loading IV Frequent Values Ahoy, Pirates Who Said Crisis? Easy Problem from Rujia Liu? 25/2
35 Home reading Cormen. 1. Recommended Section 4 (intro) Section Optional Section 21 (intro) Section /2
36 Literature Thomas H Cormen. Introduction to algorithms. MIT press, Steven Halim and Felix Halim. Competitive Programming. Lulu Independent Publish, /2
COP 4531 Complexity & Analysis of Data Structures & Algorithms
COP 4531 Complexity & Analysis of Data Structures & Algorithms Lecture 8 Data Structures for Disjoint Sets Thanks to the text authors who contributed to these slides Data Structures for Disjoint Sets Also
More informationDisjoint Sets 3/22/2010
Disjoint Sets A disjoint-set is a collection C={S 1, S 2,, S k } of distinct dynamic sets. Each set is identified by a member of the set, called representative. Disjoint set operations: MAKE-SET(x): create
More informationDisjoint Sets. Definition Linked List Representation Disjoint-Set Forests. CS 5633 Analysis of Algorithms Chapter 21: Slide 1
Disjoint Sets Definition Linked List Representation Disjoint-Set Forests CS 56 Analysis of Algorithms Chapter : Slide Disjoint Sets (Union-Find Problem) O(lgn) O(lgn) A disjoint set data structure supports
More informationData Structures for Disjoint Sets
Data Structures for Disjoint Sets Manolis Koubarakis 1 Dynamic Sets Sets are fundamental for mathematics but also for computer science. In computer science, we usually study dynamic sets i.e., sets that
More information2pt 0em. Computer Science & Engineering 423/823 Design and Analysis of Algorithms. Lecture 04 Minimum-Weight Spanning Trees (Chapter 23)
2pt 0em Computer Science & Engineering 423/823 Design and of s Lecture 04 Minimum-Weight Spanning Trees (Chapter 23) Stephen Scott (Adapted from Vinodchandran N. Variyam) 1 / 18 Given a connected, undirected
More informationComputer Science & Engineering 423/823 Design and Analysis of Algorithms
Computer Science & Engineering 423/823 Design and Analysis of Algorithms Lecture 05 Minimum-Weight Spanning Trees (Chapter 23) Stephen Scott (Adapted from Vinodchandran N. Variyam) sscott@cse.unl.edu Introduction
More informationAlgorithms and Data Structures: Minimum Spanning Trees (Kruskal) ADS: lecture 16 slide 1
Algorithms and Data Structures: Minimum Spanning Trees (Kruskal) ADS: lecture 16 slide 1 Minimum Spanning Tree Problem Given: Undirected connected weighted graph (G, W ) Output: An MST of G We have already
More informationRepresentations of Weighted Graphs (as Matrices) Algorithms and Data Structures: Minimum Spanning Trees. Weighted Graphs
Representations of Weighted Graphs (as Matrices) A B Algorithms and Data Structures: Minimum Spanning Trees 9.0 F 1.0 6.0 5.0 6.0 G 5.0 I H 3.0 1.0 C 5.0 E 1.0 D 28th Oct, 1st & 4th Nov, 2011 ADS: lects
More informationDisjoint-set data structure: Union-Find. Lecture 20
Disjoint-set data structure: Union-Find Lecture 20 Disjoint-set data structure (Union-Find) Problem: Maintain a dynamic collection of pairwise-disjoint sets S = {S 1, S 2,, S r }. Each set S i has one
More informationCOP 4531 Complexity & Analysis of Data Structures & Algorithms
COP 4531 Complexity & Analysis of Data Structures & Algorithms Lecture 9 Minimum Spanning Trees Thanks to the text authors who contributed to these slides Why Minimum Spanning Trees (MST)? Example 1 A
More informationMinimum Spanning Trees
CSMPS 2200 Fall Minimum Spanning Trees Carola Wenk Slides courtesy of Charles Leiserson with changes and additions by Carola Wenk 11/6/ CMPS 2200 Intro. to Algorithms 1 Minimum spanning trees Input: A
More informationLecture Notes for Chapter 2: Getting Started
Instant download and all chapters Instructor's Manual Introduction To Algorithms 2nd Edition Thomas H. Cormen, Clara Lee, Erica Lin https://testbankdata.com/download/instructors-manual-introduction-algorithms-2ndedition-thomas-h-cormen-clara-lee-erica-lin/
More informationLecture 1. Introduction
Lecture 1 Introduction 1 Lecture Contents 1. What is an algorithm? 2. Fundamentals of Algorithmic Problem Solving 3. Important Problem Types 4. Fundamental Data Structures 2 1. What is an Algorithm? Algorithm
More informationGreedy Algorithms Part Three
Greedy Algorithms Part Three Announcements Problem Set Four due right now. Due on Wednesday with a late day. Problem Set Five out, due Monday, August 5. Explore greedy algorithms, exchange arguments, greedy
More informationMinimum-Spanning-Tree problem. Minimum Spanning Trees (Forests) Minimum-Spanning-Tree problem
Minimum Spanning Trees (Forests) Given an undirected graph G=(V,E) with each edge e having a weight w(e) : Find a subgraph T of G of minimum total weight s.t. every pair of vertices connected in G are
More information1 Start with each vertex being its own component. 2 Merge two components into one by choosing the light edge
Taking Stock IE170: in Systems Engineering: Lecture 19 Jeff Linderoth Department of Industrial and Systems Engineering Lehigh University March 16, 2007 Last Time Minimum This Time More Strongly Connected
More informationChapter 23. Minimum Spanning Trees
Chapter 23. Minimum Spanning Trees We are given a connected, weighted, undirected graph G = (V,E;w), where each edge (u,v) E has a non-negative weight (often called length) w(u,v). The Minimum Spanning
More informationKruskal s MST Algorithm
Kruskal s MST Algorithm CLRS Chapter 23, DPV Chapter 5 Version of November 5, 2014 Main Topics of This Lecture Kruskal s algorithm Another, but different, greedy MST algorithm Introduction to UNION-FIND
More informationComplexity of Prim s Algorithm
The main loop is: Complexity of Prim s Algorithm while ( not ISEMPTY(Q) ): u = EXTRACT-MIN(Q) if p[u]!= NIL: A = A U {(p[u],u)} for v in adjacency-list[u]: if v in Q and w(u,v) < priority[v] : DECREASE-PRIORITY(v,
More informationComputer Programming
Computer Programming Dr. Deepak B Phatak Dr. Supratik Chakraborty Department of Computer Science and Engineering Session: Recap of Arrays and Simultaneous Equations (S31 S35) Dr. Deepak B. Phatak & Dr.
More informationIntroduction. Bjarki Ágúst Guðmundsson Tómas Ken Magnússon. Árangursrík forritun og lausn verkefna. School of Computer Science Reykjavík University
Introduction Bjarki Ágúst Guðmundsson Tómas Ken Magnússon School of Computer Science Reykjavík University Árangursrík forritun og lausn verkefna Welcome T-414-AFLV, Árangursrík forritun og lausn verkefna
More informationRound 3: Trees. Tommi Junttila. Aalto University School of Science Department of Computer Science. CS-A1140 Data Structures and Algorithms Autumn 2017
Round 3: Trees Tommi Junttila Aalto University School of Science Department of Computer Science CS-A1140 Data Structures and Algorithms Autumn 2017 Tommi Junttila (Aalto University) Round 3 CS-A1140 /
More informationObject Oriented Programming Using C++ Mathematics & Computing IET, Katunayake
Assigning Values // Example 2.3(Mathematical operations in C++) float a; cout > a; cout
More informationAlgorithms and Theory of Computation. Lecture 5: Minimum Spanning Tree
Algorithms and Theory of Computation Lecture 5: Minimum Spanning Tree Xiaohui Bei MAS 714 August 31, 2017 Nanyang Technological University MAS 714 August 31, 2017 1 / 30 Minimum Spanning Trees (MST) A
More informationAlgorithms and Theory of Computation. Lecture 5: Minimum Spanning Tree
Algorithms and Theory of Computation Lecture 5: Minimum Spanning Tree Xiaohui Bei MAS 714 August 31, 2017 Nanyang Technological University MAS 714 August 31, 2017 1 / 30 Minimum Spanning Trees (MST) A
More informationMinimum Spanning Trees My T. UF
Introduction to Algorithms Minimum Spanning Trees @ UF Problem Find a low cost network connecting a set of locations Any pair of locations are connected There is no cycle Some applications: Communication
More informationCSC263 Week 11. Larry Zhang.
CSC263 Week 11 Larry Zhang http://goo.gl/forms/s9yie3597b Announcements A2 due next Tuesday Course evaluation: http://uoft.me/course-evals ADT: Disjoint Sets What does it store? What operations are supported?
More informationDistributed Data Structures and Algorithms for Disjoint Sets in Computing Connected Components of Huge Network
Distributed Data Structures and Algorithms for Disjoint Sets in Computing Connected Components of Huge Network Wing Ning Li, CSCE Dept. University of Arkansas, Fayetteville, AR 72701 wingning@uark.edu
More informationCSC 505, Fall 2000: Week 7. In which our discussion of Minimum Spanning Tree Algorithms and their data Structures is brought to a happy Conclusion.
CSC 505, Fall 2000: Week 7 In which our discussion of Minimum Spanning Tree Algorithms and their data Structures is brought to a happy Conclusion. Page 1 of 18 Prim s algorithm without data structures
More informationMinimum Spanning Trees. Lecture II: Minimium Spanning Tree Algorithms. An Idea. Some Terminology. Dr Kieran T. Herley
Lecture II: Minimium Spanning Tree Algorithms Dr Kieran T. Herley Department of Computer Science University College Cork April 016 Spanning Tree tree formed from graph edges that touches every node (e.g.
More informationVARIABLES & ASSIGNMENTS
Fall 2018 CS150 - Intro to CS I 1 VARIABLES & ASSIGNMENTS Sections 2.1, 2.2, 2.3, 2.4 Fall 2018 CS150 - Intro to CS I 2 Variables Named storage location for holding data named piece of memory You need
More informationMaintaining Disjoint Sets
Maintaining Disjoint Sets Ref: Chapter 21 of text. (Proofs in Section 21.4 omitted.) Given: A collection S 1, S 2,..., S k of pairwise disjoint sets. Each set has a name, its representative, which is an
More informationNew Iterator Concepts
New Iterator Concepts Author: David Abrahams, Jeremy Siek, Thomas Witt Contact: dave@boost-consulting.com, jsiek@osl.iu.edu, witt@styleadvisor.com Organization: Boost Consulting, Indiana University Open
More informationIntroduction to Programming I COS1511 School of Computing Revision Notes
Introduction to Programming I COS1511 School of Computing Revision Notes UNISA 2018 1 Introduction Some key basic principles to remember: Apply the BODMAS rules of Mathematics for all calculations; The
More informationCS 270 Algorithms. Oliver Kullmann. Binary search. Lists. Background: Pointers. Trees. Implementing rooted trees. Tutorial
Week 7 General remarks Arrays, lists, pointers and 1 2 3 We conclude elementary data structures by discussing and implementing arrays, lists, and trees. Background information on pointers is provided (for
More informationGreedy Algorithms. At each step in the algorithm, one of several choices can be made.
Greedy Algorithms At each step in the algorithm, one of several choices can be made. Greedy Strategy: make the choice that is the best at the moment. After making a choice, we are left with one subproblem
More informationMajor Language Changes, pt. 1
C++0x What is C++0x? Updated version of C++ language. Addresses unresolved problems in C++03. Almost completely backwards compatible. Greatly increases expressiveness (and complexity!) of language. Greatly
More informationWe ve done. Introduction to the greedy method Activity selection problem How to prove that a greedy algorithm works Fractional Knapsack Huffman coding
We ve done Introduction to the greedy method Activity selection problem How to prove that a greedy algorithm works Fractional Knapsack Huffman coding Matroid Theory Now Matroids and weighted matroids Generic
More informationHomework remarking requests
Homework remarking requests BEFORE submitting a remarking request: a) read and understandour solution set(which is posted on the course web site) b) read the marking guide of the homework (also posted
More informationIntroduction to Programming: Lecture 10
Introduction to Programming: Lecture 10 K Narayan Kumar Chennai Mathematical Institute http://www.cmi.ac.in/~kumar 10 Sep 2012 Organizing functions as Modules Organize functions into modules. Organizing
More informationCS 177. Lists and Matrices. Week 8
CS 177 Lists and Matrices Week 8 1 Announcements Project 2 due on 7 th March, 2015 at 11.59 pm Table of Contents Lists Matrices Traversing a Matrix Construction of Matrices 3 Just a list of numbers 1D
More informationReview: Exam 1. Your First C++ Program. Declaration Statements. Tells the compiler. Examples of declaration statements
Review: Exam 1 9/20/06 CS150 Introduction to Computer Science 1 1 Your First C++ Program 1 //*********************************************************** 2 // File name: hello.cpp 3 // Author: Shereen Khoja
More informationTo use various types of iterators with the STL algorithms ( ). To use Boolean functions to specify criteria for STL algorithms ( 23.8).
CHAPTER 23 STL Algorithms Objectives To use various types of iterators with the STL algorithms ( 23.1 23.20). To discover the four types of STL algorithms: nonmodifying algorithms, modifying algorithms,
More informationAmortized Analysis. The time required to perform a sequence of (data structure) operations is averaged over all the operations performed.
Amortized Analysis The time required to perform a sequence of (data structure) operations is averaged over all the operations performed. No probabilistic assumptions - not an average case analysis! 1 Example:
More informationAdvanced Algorithms and Data Structures
Advanced Algorithms and Data Structures Prof. Tapio Elomaa Course Basics A new 7 credit unit course Replaces OHJ-2156 Analysis of Algorithms We take things a bit further than OHJ-2156 We will assume familiarity
More informationData structures and libraries
Data structures and libraries Bjarki Ágúst Guðmundsson Tómas Ken Magnússon Árangursrík forritun og lausn verkefna School of Computer Science Reykjavík University Today we re going to cover Basic data types
More informationArrays. CS10001: Programming & Data Structures. Pallab Dasgupta Dept. of Computer Sc. & Engg., Indian Institute of Technology Kharagpur
Arrays CS10001: Programming & Data Structures Pallab Dasgupta Dept. of Computer Sc. & Engg., Indian Institute of Technology Kharagpur Array Many applications require multiple data items that have common
More informationBasic operators, Arithmetic, Relational, Bitwise, Logical, Assignment, Conditional operators. JAVA Standard Edition
Basic operators, Arithmetic, Relational, Bitwise, Logical, Assignment, Conditional operators JAVA Standard Edition Java - Basic Operators Java provides a rich set of operators to manipulate variables.
More informationAdvanced Algorithms and Data Structures
Advanced Algorithms and Data Structures Prof. Tapio Elomaa tapio.elomaa@tut.fi Course Prerequisites A seven credit unit course Replaced OHJ-2156 Analysis of Algorithms We take things a bit further than
More informationTutorial 13 Salary Survey Application: Introducing One- Dimensional Arrays
Tutorial 13 Salary Survey Application: Introducing One- Dimensional Arrays Outline 13.1 Test-Driving the Salary Survey Application 13.2 Introducing Arrays 13.3 Declaring and Initializing Arrays 13.4 Constructing
More informationWeek 2: Console I/O and Operators Arithmetic Operators. Integer Division. Arithmetic Operators. Gaddis: Chapter 3 (2.14,3.1-6,3.9-10,5.
Week 2: Console I/O and Operators Gaddis: Chapter 3 (2.14,3.1-6,3.9-10,5.1) CS 1428 Fall 2014 Jill Seaman 1 2.14 Arithmetic Operators An operator is a symbol that tells the computer to perform specific
More informationMinimum Spanning Trees
CS124 Lecture 5 Spring 2011 Minimum Spanning Trees A tree is an undirected graph which is connected and acyclic. It is easy to show that if graph G(V,E) that satisfies any two of the following properties
More information2. Distinguish between a unary, a binary and a ternary operator. Give examples of C++ operators for each one of them.
1. Why do you think C++ was not named ++C? C++ is a super set of language C. All the basic features of C are used in C++ in their original form C++ can be described as C+ some additional features. Therefore,
More informationCSE101: Design and Analysis of Algorithms. Ragesh Jaiswal, CSE, UCSD
Recap. Growth rates: Arrange the following functions in ascending order of growth rate: n 2 log n n log n 2 log n n/ log n n n Introduction Algorithm: A step-by-step way of solving a problem. Design of
More informationNon-numeric types, boolean types, arithmetic. operators. Comp Sci 1570 Introduction to C++ Non-numeric types. const. Reserved words.
, ean, arithmetic s s on acters Comp Sci 1570 Introduction to C++ Outline s s on acters 1 2 3 4 s s on acters Outline s s on acters 1 2 3 4 s s on acters ASCII s s on acters ASCII s s on acters Type: acter
More informationCompetitive Programming
This course material is now made available for public usage. Special acknowledgement to School of Computing, National University of Singapore for allowing Steven to prepare and distribute these teaching
More informationGE U111 Engineering Problem Solving & Computation Lecture 6 February 2, 2004
GE U111 Engineering Problem Solving & Computation Lecture 6 February 2, 2004 Functions and Program Structure Today we will be learning about functions. You should already have an idea of their uses. Cout
More informationDecreasing a key FIB-HEAP-DECREASE-KEY(,, ) 3.. NIL. 2. error new key is greater than current key 6. CASCADING-CUT(, )
Decreasing a key FIB-HEAP-DECREASE-KEY(,, ) 1. if >. 2. error new key is greater than current key 3.. 4.. 5. if NIL and.
More informationCHENNAI MATHEMATICAL INSTITUTE M.Sc. / Ph.D. Programme in Computer Science
CHENNAI MATHEMATICAL INSTITUTE M.Sc. / Ph.D. Programme in Computer Science Entrance Examination, 5 May 23 This question paper has 4 printed sides. Part A has questions of 3 marks each. Part B has 7 questions
More informationUnit-2 Divide and conquer 2016
2 Divide and conquer Overview, Structure of divide-and-conquer algorithms, binary search, quick sort, Strassen multiplication. 13% 05 Divide-and- conquer The Divide and Conquer Paradigm, is a method of
More information6.096 Introduction to C++ January (IAP) 2009
MIT OpenCourseWare http://ocw.mit.edu 6.096 Introduction to C++ January (IAP) 2009 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms. Welcome to 6.096 Lecture
More informationTenka1 Programmer Contest/Tenka1 Programmer Beginner Contest 2018
Tenka1 Programmer Contest/Tenka1 Programmer Beginner Contest 2018 DEGwer 2018/10/27 For International Readers: English editorial starts on page 5. A: Measure #include #include
More informationPriority Queues and Huffman Trees
Priority Queues and Huffman Trees 1 the Heap storing the heap with a vector deleting from the heap 2 Binary Search Trees sorting integer numbers deleting from a binary search tree 3 Huffman Trees encoding
More informationMODULE 35 --THE STL-- ALGORITHM PART III
MODULE 35 --THE STL-- ALGORITHM PART III My Training Period: hours Note: Compiled using Microsoft Visual C++.Net, win32 empty console mode application. g++ compilation example is given at the end of this
More informationDATA STRUCTURE : A MCQ QUESTION SET Code : RBMCQ0305
Q.1 If h is any hashing function and is used to hash n keys in to a table of size m, where n
More informationFinal Examination Semester 1 / Year 2011
Southern College Kolej Selatan 南方学院 Final Examination Semester 1 / Year 2011 COURSE : DATA STRUCTURE AND ALGORITHM COURSE CODE : PROG2103 TIME : 2 1/2 HOURS DEPARTMENT : COMPUTER SCIENCE LECTURER : SO
More informationUniversity of Waterloo Department of Electrical and Computer Engineering ECE 250 Data Structures and Algorithms. Final Examination
University of Waterloo Department of Electrical and Computer Engineering ECE 250 Data Structures and Algorithms Instructor: Douglas Wilhelm Harder Time: 2.5 hours Aides: none 14 pages Final Examination
More informationContext: Weighted, connected, undirected graph, G = (V, E), with w : E R.
Chapter 23: Minimal Spanning Trees. Context: Weighted, connected, undirected graph, G = (V, E), with w : E R. Definition: A selection of edges from T E such that (V, T ) is a tree is called a spanning
More information1- Write a single C++ statement that: A. Calculates the sum of the two integrates 11 and 12 and outputs the sum to the consol.
1- Write a single C++ statement that: A. Calculates the sum of the two integrates 11 and 12 and outputs the sum to the consol. B. Outputs to the console a floating point number f1 in scientific format
More informationDIVIDE AND CONQUER ALGORITHMS ANALYSIS WITH RECURRENCE EQUATIONS
CHAPTER 11 SORTING ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN C++, GOODRICH, TAMASSIA AND MOUNT (WILEY 2004) AND SLIDES FROM NANCY M. AMATO AND
More informationFundamentals of Programming CS-110. Lecture 2
Fundamentals of Programming CS-110 Lecture 2 Last Lab // Example program #include using namespace std; int main() { cout
More informationData Structures and Algorithms. Part 2
1 Data Structures and Algorithms Part 2 Werner Nutt 2 Acknowledgments The course follows the book Introduction to Algorithms, by Cormen, Leiserson, Rivest and Stein, MIT Press [CLRST]. Many examples displayed
More informationmanaging an evolving set of connected components implementing a Union-Find data structure implementing Kruskal s algorithm
Spanning Trees 1 Spanning Trees the minimum spanning tree problem three greedy algorithms analysis of the algorithms 2 The Union-Find Data Structure managing an evolving set of connected components implementing
More informationData Structures and Algorithms
Data Structures and Algorithms Spring 2017-2018 Outline 1 Priority Queues Outline Priority Queues 1 Priority Queues Jumping the Queue Priority Queues In normal queue, the mode of selection is first in,
More informationExam 3 Chapters 7 & 9
Exam 3 Chapters 7 & 9 CSC 2100-002/003 29 Mar 2017 Read through the entire test first BEFORE starting Put your name at the TOP of every page The test has 4 sections worth a total of 100 points o True/False
More informationCOMP322 - Introduction to C++ Lecture 01 - Introduction
COMP322 - Introduction to C++ Lecture 01 - Introduction Robert D. Vincent School of Computer Science 6 January 2010 What this course is Crash course in C++ Only 14 lectures Single-credit course What this
More informationLecture Notes for Chapter 23: Minimum Spanning Trees
Lecture Notes for Chapter 23: Minimum Spanning Trees Chapter 23 overview Problem A town has a set of houses and a set of roads. A road connects 2 and only 2 houses. A road connecting houses u and v has
More information6.1 Minimum Spanning Trees
CS124 Lecture 6 Fall 2018 6.1 Minimum Spanning Trees A tree is an undirected graph which is connected and acyclic. It is easy to show that if graph G(V,E) that satisfies any two of the following properties
More informationAnnouncements Problem Set 5 is out (today)!
CSC263 Week 10 Announcements Problem Set is out (today)! Due Tuesday (Dec 1) Minimum Spanning Trees The Graph of interest today A connected undirected weighted graph G = (V, E) with weights w(e) for each
More informationC++ Programming Lecture 1 Software Engineering Group
C++ Programming Lecture 1 Software Engineering Group Philipp D. Schubert Contents 1. More on data types 2. Expressions 3. Const & Constexpr 4. Statements 5. Control flow 6. Recap More on datatypes: build-in
More informationIntroduction to Programming EC-105. Lecture 2
Introduction to Programming EC-105 Lecture 2 Input and Output A data stream is a sequence of data - Typically in the form of characters or numbers An input stream is data for the program to use - Typically
More informationOrganisation. Assessment
Week 1 s s Getting Started 1 3 4 5 - - Lecturer Dr Lectures Tuesday 1-13 Fulton House Lecture room Tuesday 15-16 Fulton House Lecture room Thursday 11-1 Fulton House Lecture room Friday 10-11 Glyndwr C
More informationAgenda. The main body and cout. Fundamental data types. Declarations and definitions. Control structures
The main body and cout Agenda 1 Fundamental data types Declarations and definitions Control structures References, pass-by-value vs pass-by-references The main body and cout 2 C++ IS AN OO EXTENSION OF
More information2.1 Greedy Algorithms. 2.2 Minimum Spanning Trees. CS125 Lecture 2 Fall 2016
CS125 Lecture 2 Fall 2016 2.1 Greedy Algorithms We will start talking about methods high-level plans for constructing algorithms. One of the simplest is just to have your algorithm be greedy. Being greedy,
More informationIntroduction to Algorithms I
Summer School on Algorithms and Optimization Organized by: ACM Unit, ISI and IEEE CEDA. Tutorial II Date: 05.07.017 Introduction to Algorithms I (Q1) A binary tree is a rooted tree in which each node has
More informationOutline. Review of Last Week II. Review of Last Week. Computer Memory. Review Variables and Memory. February 7, Data Types
Data Types Declarations and Initializations Larry Caretto Computer Science 16 Computing in Engineering and Science February 7, 25 Outline Review last week Meaning of data types Integer data types have
More informationScientific Computing
Scientific Computing Martin Lotz School of Mathematics The University of Manchester Lecture 1, September 22, 2014 Outline Course Overview Programming Basics The C++ Programming Language Outline Course
More informationData Structures and Algorithms Chapter 2
1 Data Structures and Algorithms Chapter 2 Werner Nutt 2 Acknowledgments The course follows the book Introduction to Algorithms, by Cormen, Leiserson, Rivest and Stein, MIT Press [CLRST]. Many examples
More informationMinimum Spanning Tree (5A) Young Won Lim 5/11/18
Minimum Spanning Tree (5A) Copyright (c) 2015 2018 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2
More informationGeometric Data Structures
Geometric Data Structures 1 Data Structure 2 Definition: A data structure is a particular way of organizing and storing data in a computer for efficient search and retrieval, including associated algorithms
More informationCSE 431/531: Analysis of Algorithms. Greedy Algorithms. Lecturer: Shi Li. Department of Computer Science and Engineering University at Buffalo
CSE 431/531: Analysis of Algorithms Greedy Algorithms Lecturer: Shi Li Department of Computer Science and Engineering University at Buffalo Main Goal of Algorithm Design Design fast algorithms to solve
More informationJust Sort. Sathish Kumar Vijayakumar Chennai, India (1)
Just Sort Sathish Kumar Vijayakumar Chennai, India satthhishkumar@gmail.com Abstract Sorting is one of the most researched topics of Computer Science and it is one of the essential operations across computing
More informationCOMP108 Algorithmic Foundations
Algorithmic Foundations Basics Prudence Wong http://www.csc.liv.ac.uk/~pwong/teaching/comp108/201617 Crossing Bridge @ Night 1 min each time, 2 persons share a torch they walk @ speed of slower person
More information2 nd Week Lecture Notes
2 nd Week Lecture Notes Scope of variables All the variables that we intend to use in a program must have been declared with its type specifier in an earlier point in the code, like we did in the previous
More informationAlgorithms and Data Structures, or
Algorithms and Data Structures, or... Classical Algorithms of the 50s, 60s and 70s Mary Cryan A&DS Lecture 1 1 Mary Cryan Our focus Emphasis is Algorithms ( Data Structures less important). Most of the
More informationLecture 3 Operators MIT AITI
Lecture 3 Operators MIT AITI - 2004 What are Operators? Operators are special symbols used for mathematical functions assignment statements logical comparisons Examples: 3 + 5 // uses + operator 14 + 5
More informationMA400: Financial Mathematics
MA400: Financial Mathematics Introductory Course Lecture 1: Overview of the course Preliminaries A brief introduction Beginning to program Some example programs Aims of this course Students should have
More informationChapter 1 INTRODUCTION
Chapter 1 INTRODUCTION A digital computer system consists of hardware and software: The hardware consists of the physical components of the system. The software is the collection of programs that a computer
More informationN objects numbered 0, 1,, N 1, grouped into disjoint sets One member of a set chosen to be the label
CS 0 Theory of Algorithms Supplement Disjoint Set Structures Disjoint Set Structures N objects numbered 0, 1,, N 1, grouped into disjoint sets One member of a set chosen to be the label of the set Example:
More informationAdd Subtract Multiply Divide
ARITHMETIC OPERATORS if AND if/else AND while LOOP Order of Operation (Precedence Part 1) Copyright 2014 Dan McElroy Add Subtract Multiply Divide + Add - Subtract * Multiply / Divide = gives the quotient
More information