Olympiads in Informatics 6 Algorithm Design with Pythia, a Web-Based Learning Platform 31 D

Total Page:16

File Type:pdf, Size:1020Kb

Olympiads in Informatics 6 Algorithm Design with Pythia, a Web-Based Learning Platform 31 D Olympiads Olympiadsin Informatics in Informatics Olympiads VolumeVolume 6, 2012 6 2012 G. AUDRITO, G.B. DEMO, E. GIOVANNETTI. The role of contests in changing informatics education: a local view 3 in Informatics V. BOŽA, M. FORIŠEK. FCL-STL, a generics-based template library for FreePascal 21 S. COMBÉFIS, V. le CLÉMENT de SAINT-MARCQ. Teaching programming and Olympiads in Informatics 6 algorithm design with Pythia, a web-based learning platform 31 D. GINAT. Insight tasks for examining student illuminations 44 S. HALIM, Z.C. KOH, V.B.H. LOH, F. HALIM. Learning algorithms with unified and interactive web-based visualization 53 M. HIRON, L. FÉVRIER. A Self-paced learning platform to teach programming and algorithms 69 S. MAGGIOLO, G. MASCELLANI. Introducing CMS: a contest management system 86 M. MAREŠ, B. BLACKHAM. A new contest sandbox 100 P.S. PANKOV, K.A. BARYSHNIKOV. Tasks of a priori unbounded complexity 110 N. RAGONIS. Type of questions – the case of computer science 115 REPORTS 133 F. ALMEIDA, V. BLANCO PÉREZ et al. An experience on the organization of the first Spanish parallel programming contest 133 F. DOGBEY. Learning computer programming as an extra curriculum activity, Volume 6, 2012 the challenges 148 A. ILIC,´ A. ILIC.´ IOI Training and Serbian competitions in informatics 158 J.R. JANALIEVA. Conducting off-line informatics olympiads with individual tasks 170 E. KELEVEDJIEV, Z. DZHENKOVA. Competitions’ tasks in informatics for the “pre-master” group of school students 178 P. NEDKOV. Young talent in informatics 192 P. TAYLOR. Comparisons of the IMO and IOI 199 J. URBANCIˇ C,ˇ M. TRAMPUŠ. Putka – a web application in support of computer programming education 205 W. van der VEGT. Theoretical tasks on algorithms; two small examples 212 E. ZUR, T. BENAYA, O. BECKER, D. GINAT. Israel: The regional competition and teacher involvement 218 REVIEWS, COMMENTS 226 Ics In Informat IOIIad olymp Ional ISSN 1822-7732 Internat ISSN 1822-7732 INTERNATIONAL OLYMPIAD IN INFORMATICS VILNIUS UNIVERSITY INSTITUTE OF MATHEMATICS AND INFORMATICS OLYMPIADS IN INFORMATICS Volume 6 2012 Selected papers of the International Conference joint with the XXIV International Olympiad in Informatics Sirmione – Montichiari, Italy, September 23–30, 2012 OLYMPIADS IN INFORMATICS ISSN 1822-7732 Editor-in-Chief Valentina Dagiene˙ Vilnius University, Lithuania, [email protected] Executive Editor Richard Forster British Informatics Olympiad, UK, [email protected] International Editorial Board Gerald Futschek, Vienna University of Technology, Austria, [email protected] Bruria Haberman, Holon Institute of Technology, Israel, [email protected] Marcin Kubica, Warsaw University, Poland, [email protected] Ville Leppänen, University of Turku, Finland, [email protected].fi Krassimir Manev, Sofia University, Bulgaria, [email protected]fia.bg Rein Prank, University of Tartu, Estonia, [email protected] Peter Taylor, University of Canberra, Australia, [email protected] Troy Vasiga, University of Waterloo, Canada, [email protected] Peter Waker, International Qualification Alliance, Republic of South Africa, [email protected] http://www.mii.lt/olympiads_in_informatics Publisher: Vilnius University Institute of Mathematics and Informatics c Vilnius University, 2012 Akademijos 4, LT-08663 Vilnius, Lithuania All rights reseserved Olympiads in Informatics, 2012, Vol. 6, 1–2 1 © 2012 Vilnius University Foreword Writing the introductions to the successive volumes of Olympiads in Informatics gives a moment to reflect. Typically on the changing face of informatics olympiads and educa- tion but also informatics and wider society in general. In the time between the previous (5th) conference and this one, back in October 2011, one of the pioneer computer sci- entists passed away. This was someone whose work had a noticeable influence on most informatics olympiads, indeed on much of computing as we know it today, and someone whose death whilst making the obituary columns in many major papers rarely made it any further. Quickly forgotten, or passing under most peoples’ radar, a man without whom the current IT landscape would look somewhat different. We refer, of course, to Dennis Ritchie whose contributions included such things as the UNIX operating system and the C language. It is perhaps telling that almost all informat- ics olympiads – excluding perhaps those aimed at a relatively junior level – include C or its successors as programming options. On receiving the US National Medal of Tech- nology he, along with his co-recipient, said “We take this award to us as symbolic of the seminal contributions of our immediate colleagues ...manyofthemostinterestingideas were not ours, but generated in collaboration”. It would be easy to focus on the “collaboration” statement. We are, after all, a confer- ence so our very existence relies on collaboration within our community. Individuals to write the papers, review them, edit them and of course read and use them, without which they are but “sound and fury, signifying nothing”. Rather, let us reflect on the “seminal contributions”. Our field is a relatively young one, one which leaving aside its mathematic roots (claiming the 300 BCE Euclidean algorithm as evidence for computer science exist- ing for over 2 millennium would be stretching a point) and some programable machines in the 1800s, really kicked off in the 1930s. Some of the early pioneers are still amongst us and many of us have worked with and known others. Our up-and-coming computer scientists have that opportunity to be pioneers in the field. Our informatics olympiads are a means for capturing and enthusing potential stu- dents; to quote the IOI regulations “To bring the discipline of informatics to the atten- tion of young people”. We all have different requirements when putting together our olympiads. We want to attract a wide range of students, introduce real computing to students who otherwise only see the end results; the games they play and the word pro- cessing they are ’taught’ in schools. We are also there though for our best students – our participation at global olympiads proves that point. How do we encourage those students? Our best students are often the best students in a multitude of subjects – why should they choose informatics? How do we grab our new pioneers? 2 Informatics in general is young and the teaching of informatics, plus teaching with informatics, younger still. We have opportunities, in many of our countries, to have an impact – positive or negative – on the way students are taught. Get it right and paradigms for future teaching will be set; a pioneering footstep. Get it wrong and we will just a part of a passing trend; an inevitable footnote. This volume is quite extensive: we are publishing 22 papers and reports. The format for the journal follows three tracks: the primary section of the journal focuses on research (the acceptance rate is around 40%); the second report section is devoted to sharing our national experiences – potentially of less interest to those outside the community; the last section presents some book reviews which we hope will be of interest to our readers. We are pleased that this volume succeeded in getting national reports from various countries. Again, we would like to encourage writing short comments, opinions and challenges – it will be useful for everybody within community. As always thanks are due to all those who have assisted with the current volume – authors, reviewers and editors. A lot of work goes, not only to the writing of the papers, but to an extended period of review and correction and, in several cases, translation. Peer reviewing all of the papers takes a significant amount of time and work and special thanks should be given to those otherwise unsung reviewing heroes: Ian W. Atha, Jonas Blonskis, Ben Burton, Giorgio Casadei, Sebastien Combefis, Hugo Duenas, Gerald Futschek, Gin- tautas Grigas, Sari Haj Hussein, Ville Leppänen, Krassimir Manev, Timo Poranen, Rhein Prank, Jurat¯ eSk˙ upien¯ e,˙ Peter Taylor, Ahto Truu, Troy Vasiga, Willem van der Vegt, and Peter Walker. Last, but by no means least, particular thanks are due to the organisational committee for IOI’2012 in Italy without whose assistance we would be unable to hold the confer- ence. Their assistance, during what is an already busy period, is gratefully received. Editors Olympiads in Informatics, 2012, Vol. 6, 3–20 3 © 2012 Vilnius University The Role of Contests in Changing Informatics Education: A Local View Giorgio AUDRITO1,G.BarbaraDEMO2, Elio GIOVANNETTI2 1Dipartimento di Matematica, Università di Torino via Carlo Alberto, 10-10123 Torino, Italy 2Dipartimento di Informatica, Università di Torino corso Svizzera, 185-10149, Torino, Italy e-mail: [email protected], {barbara, elio}@di.unito.it Abstract. Changing the teaching of informatics in secondary (and primary) education is in many countries difficult to achieve, owing to several reasons: the natural tendency of institutions and people to stick to well-established practices, a distorted view of informatics prevailing in society and among those who take the decisions, the specific fact that in several school systems the teaching of informatics is largely committed to teachers of other scientific disciplines. We describe the Italian situation and our experience in Turin where we have organised training stages for the Olympiad in Informatics and supported the organisation of other informatics contests. On its basis we argue how the different kinds of competition can help to change informatics education in Italy, by making problem solving and programming play a central role. Key words: competitions, problem solving, programming in education, data structures, algorithms, programming techniques. 1. Introduction In the last few years the need for a change in curricula, learning objectives and teach- ing techniques of computer-related disciplines in (primary and) secondary education has emerged in the public debate in a number of countries. The recent speech of the British Secretary of State for Education Mr. Michael Gove at BETT 2012 (BETT is the annual British Educational Training and Technology show) is a good example of governmental awareness on the subject.
Recommended publications
  • Compact Fenwick Trees for Dynamic Ranking and Selection
    Compact Fenwick trees for dynamic ranking and selection Stefano Marchini Sebastiano Vigna Dipartimento di Informatica, Universit`adegli Studi di Milano, Italy October 15, 2019 Abstract The Fenwick tree [3] is a classical implicit data structure that stores an array in such a way that modifying an element, accessing an element, computing a prefix sum and performing a predecessor search on prefix sums all take logarithmic time. We introduce a number of variants which improve the classical implementation of the tree: in particular, we can reduce its size when an upper bound on the array element is known, and we can perform much faster predecessor searches. Our aim is to use our variants to implement an efficient dynamic bit vector: our structure is able to perform updates, ranking and selection in logarithmic time, with a space overhead in the order of a few percents, outperforming existing data structures with the same purpose. Along the way, we highlight the pernicious interplay between the arithmetic behind the Fenwick tree and the structure of current CPU caches, suggesting simple solutions that improve performance significantly. 1 Introduction The problem of building static data structures which perform rank and select operations on vectors of n bits in constant time using additional o(n) bits has received a great deal of attention in the last two decades starting form Jacobson's seminal work on succinct data structures. [7] The rank operator takes a position in the bit vector and returns the number of preceding ones. The select operation returns the position of the k-th one in the vector, given k.
    [Show full text]
  • List of Algorithms
    List of Algorithms Swiss Olympiad in Informatics September 13, 2012 This list contains a few algorithms that may prove useful when solving SOI or IOI related tasks. The current IOI Syllabus can be found here: http://people.ksp.sk/~misof/ioi-syllabus/ioi-syllabus.pdf Please note that this list simply serves as an outline and that tasks are not limited by the algorithms listed below. However, one can also participate (and even be successful) without knowing the algorithms listed below. To guide you better, the most important topics are in bold. • Sorting1 • Binary Search • Data Structures Stack1 Queue1 List: Linked List, Doubly Linked List1 Tree Sets1 and Tree Maps1 (Binary Search Trees) Priority Queue1 Double ended queue1 Binary Heap Data Structure Interval Tree Segment Tree Disjoint{set Data Structure (Union{Find) Rational Numbers Bignum (Addition, Subtraction, Multiplication, Division) Quad Tree optional: Binary Indexed Tree (BIT) (Fenwick Tree) • Graph Algorithms DFS (Depth{First Search) BFS (Breadth{First Search) Connected Components Topological Sorting (toposort) Shortest Path · Dijkstra's Algorithm · Bellman{Ford Algorithm · Floyd{Warshall's Algorithm (all{pairs shortest path) MST (Minimum Spanning Tree) · Kruskal's Algorithm · Prim's Algorithm · Find Articulation Points (articfind) · Hierholzer's Algorithm (for finding Euler cycles) • Dynamic Programming (DP) Prefix Sum Edit Distance LCS (Longest Common Subsequence) LIS (Longest Increasing Subsequence) MCM (Matrix Chain Multiplication) MER (Maximum Empty Rectangle)
    [Show full text]
  • On Updating and Querying Submatrices
    On Updating and Querying Submatrices Jason Yang Mentor: Jun Wan MIT PRIMES Computer Science October 19, 2020 Jason YangMentor: Jun Wan On Updating and Querying Submatrices Range update-query problem A is an array of N numbers A range R = [l; r] is the set of indices fijl ≤ i ≤ rg update(R; v): for all i 2 R, set A[i] to A[i] + v query(R): return mini2R A[i] Segment tree + lazy propagation: O(log N) time updates and queries Jason YangMentor: Jun Wan On Updating and Querying Submatrices Generalizations Using different operators update(R; v): 8i 2 R; A[i] A[i] 5 v query(R; v) : return 4i2R A[i] If 5 and 4 are associative, segment tree + lazy propagation usually works (but not always) Ex. (5; 4) = (+; +) (∗; +) ( ; min) This problem and variants have applications in LCA in a tree image retrieval Jason YangMentor: Jun Wan On Updating and Querying Submatrices Generalizations 2 dimensions: the array becomes a matrix ranges fijl ≤ i ≤ rg becomes submatrices [l0; r0][l1; r1] = fijl0 ≤ i ≤ r0g × fjjl1 ≤ j ≤ r1g We call this the submatrix update-query problem. Jason YangMentor: Jun Wan On Updating and Querying Submatrices Previous Work Generalizing segment tree seems to be very difficult update query d = 1 Segment Tree O(log N) O(log N) d = 2 2D Segment Tree O(N log N) O(log2 N) Quadtree O(N) O(N) d = 2, special operator pairs (5; 4) 2D Fenwick Tree (Mishra) O(16 log2 N) O(16 log2 N) 2D Segment Tree (Ibtehaz) O(log2 N) O(log2 N) 2D Segment Tree (ours) O(log2 N) O(log2 N) Jason YangMentor: Jun Wan On Updating and Querying Submatrices Intuition Why is
    [Show full text]
  • A New Algorithm for Updating and Querying Sub-Arrays Of
    A New Algorithm for Updating and Querying Sub-arrays of Multidimensional Arrays Pushkar Mishra Computer Laboratory, University of Cambridge [email protected] Abstract Given a d-dimensional array A, an update operation adds a given constant C to each element within a continuous sub-array of A. A query operation computes the sum of all the elements within a continuous sub-array of A. The one-dimensional update and query handling problem has been studied intensively and is usually solved using segment trees with lazy propagation technique. In this paper, we present a new algorithm incorporating Binary Indexed Trees and Inclusion-Exclusion Principle to accomplish the same task. We extend the algorithm to update and query sub-matrices of matrices (two-dimensional array). Finally, we propose a general form of the algorithm for d-dimensions which d d achieves O(4 ∗ log n) time complexity for both updates and queries. This is an improvement over the previously known algorithms which utilize hierarchical data structures like quadtrees and octrees d−1 and have a worst-case time complexity of Ω(n ) per update/query. Keywords: Algorithm; Data Structure; Multidimensional Array; Binary Indexed Tree; Range-update; Range-query. 1 Introduction The problem of updating and querying sub-arrays of multidimensional arrays is of consequence to sev- eral fields including data management, image processing and geographical information systems. The one-dimensional version of this problem has conventionally been solved using segment trees with lazy propagation technique. We show in this paper that a d-dimensional segment tree (d> 1) supports lazy propagation only along one out of the d dimensions.
    [Show full text]
  • Olympiads in Informatics15
    Olympiads in Informatics Olympiads OlympiadsVolume 15, 2021 in Informatics in Informatics Volume 15, 2021 Foreword 1 Olympiads in Informatics G. AUDRITO, W. DI LUIGI, L. LAURA, E. MORASSUTTO, D. OSTUNI 15 The Italian Job: Moving (Massively) Online a National Olympiad 3 D. GINAT Self-Generated Figures in Sequence Processing 13 J. HASANOV, H. GADIRLI, A. BAGIYEV On Using Real-Time and Post-Contest Data to Improve the Contest Organization, Tech- nical/Scientific Procedures and Build an Efficient Contestant Preparation Strategy 23 M. MAREŠ Security of Grading Systems 37 L. NIKHÁZY, Á. NOSZÁLY, B. DEÁK Why You Should Know and Not Only Use Sorting Algorithms: Some Beautiful Problems 53 P.S. PANKOV, T.M. IMANALIEV, A.A. KENZHALIEV Automatic Makers as a Source for Olympiad Tasks 75 Z. PLUHÁR Extending Computational Thinking Activities 83 V.D. RISTOVSKA, E. STANKOV, P. SEKULOSKI Teaching and Examination Process of Some University Courses before vs during the 91 Corona Crisis Volume 15, 2021 M.S. TSVETKOVA, V.M. KIRYUKHIN Algorithmic Thinking and New Digital Literacy 105 T. VERHOEFF Look Ma, Backtracking without Recursion 119 REPORTS F. HERNÁNDEZ GONZÁLEZ, J.D. RODRÍGUEZ MORALES, D.A. RIPOLL MÉNDEZ The Cuban Olympiad in Informatics: A New Stage from the DMOJ Online Judge 133 A. LAAKSONEN Reviews of Two Programming Books 143 Ics In Informat IOIIad olymp Ional ISSN 1822-7732 Internat ISSN 1822-7732 INTERNATIONAL OLYMPIAD IN INFORMATICS VILNIUS UNIVERSITY OLYMPIADS IN INFORMATICS Volume 15 2021 Selected papers of the International Conference joint with the XXXIII International Olympiad in Informatics (online) Singapore, 19–25 June, 2021 OLYMPIADS IN INFORMATICS Editor-in-Chief Valentina Dagienė Vilnius University, Lithuania, [email protected] Executive Editor Mile Jovanov Sts.
    [Show full text]
  • Day 03: Problem Analysis Vitaly Aksenov ITMO University, St
    Day 03: Problem Analysis Vitaly Aksenov ITMO University, St. Petersburg, Russia 25.02.2014 Problems • Problems, where taken half from the Petrozavodk camp for Russian teams, the other half from the old NEERC Nothern Quaterfinals • What you should know to solve this problems: – Treap (explicit/implicit key) – Segment tree – Fenwick tree – Even in one problem you could use DSU Problem A. Problem with queries • You are given some specific subset of sql commands • And you need to evaluate them Problem A. Problem with queries • You should see, that restrictions in this problem are small. This means, that you shouldn’t think to much about optimization of problem and you can use strict-forward solution. • You need to parse input commands. It seems to be one of the hardest part of the problem, because you need to write a lot of code without mistakes. Such as InSErT is the same as INSERT. • You need to write the logical operations properly, where AND has bigger priority. Problem B. Examinator • You need perform the following queries: – How many cubes between A and B? – Insert cube A upon cube B. – Remove cube A. Problem B. Examinator • Let us think, that you don’t need to remove cubes. We will perform adding cubes to the tower with the help of the list structure. • When we add all the cubes, we know the position of each cube in the result tower. A -> pos[A] • Now, rephrase all the queries: – How many ones between pos[A] and pos[B]? – Put one in the position pos[A]. – Remove one from the position pos[A].
    [Show full text]
  • Algorithms for Efficiently Collapsing Reads with Unique Molecular Identifiers
    bioRxiv preprint doi: https://doi.org/10.1101/648683; this version posted May 24, 2019. The copyright holder for this preprint (which was not certified by peer review) is the author/funder, who has granted bioRxiv a license to display the preprint in perpetuity. It is made available under aCC-BY 4.0 International license. Liu RESEARCH Algorithms for efficiently collapsing reads with Unique Molecular Identifiers Daniel Liu Correspondence: [email protected] Abstract Torrey Pines High School, Del Mar Heights Road, San Diego, United Background: Unique Molecular Identifiers (UMI) are used in many experiments to States of America find and remove PCR duplicates. Although there are many tools for solving the Department of Psychiatry, University of California San Diego, problem of deduplicating reads based on their finding reads with the same Gilman Drive, La Jolla, United alignment coordinates and UMIs, many tools either cannot handle substitution States of America errors, or require expensive pairwise UMI comparisons that do not efficiently scale Full list of author information is available at the end of the article to larger datasets. Results: We formulate the problem of deduplicating UMIs in a manner that enables optimizations to be made, and more efficient data structures to be used. We implement our data structures and optimizations in a tool called UMICollapse, which is able to deduplicate over one million unique UMIs of length 9 at a single alignment position in around 26 seconds. Conclusions: We present a new formulation of the UMI deduplication problem, and show that it can be solved faster, with more sophisticated data structures.
    [Show full text]
  • Partial Sums on the Ultra-Wide Word RAM∗ Arxiv:1908.10159V2 [Cs.DS]
    Partial Sums on the Ultra-Wide Word RAM∗ Philip Bille Inge Li Gørtz Frederik Rye Skjoldjensen [email protected] [email protected] [email protected] Abstract We consider the classic partial sums problem on the ultra-wide word RAM model of computation. This model extends the classic w-bit word RAM model with special ultrawords of length w2 bits that support standard arithmetic and boolean operation and scattered memory access operations that can access w (non- contiguous) locations in memory. The ultra-wide word RAM model captures (and idealizes) modern vector processor architectures. Our main result is a new in-place data structure for the partial sum problem that only stores a constant number of ultrawords in addition to the input and supports operations in doubly logarithmic time. This matches the best known time bounds for the problem (among polynomial space data structures) while improving the space from superlinear to a constant number of ultrawords. Our results are based on a simple and elegant in-place word RAM data structure, known as the Fenwick tree. Our main technical contribution is a new efficient parallel ultra-wide word RAM implementation of the Fenwick tree, which is likely of independent interest. 1 Introduction Let A[1; : : : ; n] be an array of integers of length n. The partial sums problem is to maintain a data structure for A under the following operations: sum(i): return Pi A[k]. • k=1 update(i; ∆): set A[i] A[i] + ∆. • The partial sums problem is a classic and well-studied data structure problem [1,2,3,4, arXiv:1908.10159v2 [cs.DS] 30 Sep 2020 10,13,15,17,18,19,20,22,23,24,25,32,33,39].
    [Show full text]
  • Team Reference Document
    Team Reference Document ACM-ICPC World Finals, 2018 April 15{20, Beijing Contestants: Coach: Filip Bialas doc. Mgr. Zdeněk Dvoøák, Ph.D. Richard Hladík Václav Volhejn Charles University 1 Prologue 1 Treap 6 Link-cut tree 15 trinerdi/base.hpp 1 Counting the number of spanning trees 16 trinerdi/sc.sh 1 Numerical 6 Geometry 16 trinerdi/check.sh 1 Polynomial 6 Binary search 6 Geometric primitives 16 Mathematics (text) 1 Golden section search 6 Point 16 Equations 1 Polynomial roots 6 Line distance 16 Recurrences 1 Determinant 7 Segment distance 16 Trigonometry 2 Linear programming 7 Segment intersection 16 Geometry 2 Linear equations 7 Segment intersection (boolean version) 17 Triangles 2 Linear equations++ 7 Line intersection 17 Quadrilaterals 2 Linear equations in Z 7 2 Point-line orientation 17 Spherical coordinates 2 Matrix inversion 8 Point on segment 17 Derivatives/Integrals 2 FFT 8 Linear transformation 17 Sums 2 Angle 17 Series 2 Number theory 8 Probability theory 2 Fast exponentiation 8 Circles 18 Discrete distributions 2 Primality test 8 Circle intersection 18 Binomial distribution 2 Sieve of Eratosthenes 8 Circle tangents 18 First success distribution 2 Extended Euclid's Algorithm 8 Circumcircle 18 Poisson distribution 2 Modular arithmetic 8 Minimum enclosing circle 18 Continuous distributions 2 Modular inverse (precomputation) 9 Uniform distribution 2 Modular multiplication for ll 9 Polygons 18 Exponential distribution 2 Modular square roots 9 Inside general polygon 18 Normal distribution 3 Discrete logarithm 9 Polygon area 18 Markov chains 3 NTT 9 Polygon's center of mass 18 Number-theoretical 3 Factorization 9 Polygon cut 18 Pythagorean Triples 3 Phi function 10 Convex hull 19 Primes 3 Chinese remainder theorem 10 Polygon diameter 19 Estimates 3 Inside polygon (pseudo-convex) 19 Combinatorics 10 Intersect line with convex polygon (queries) 19 Combinatorial (text) 3 Permutation serialization 10 Misc.
    [Show full text]
  • Data Structures
    Data Structure(III) Ian Things that we would talk about ● Disjoint set ● Segment tree ● Binary indexed tree ● Trie Disjoint set ● Keep tracking elements belong to which subset (non- overlapping) ● Support two operation – Union (merge two subset into one) – Find (see if element x belong to which subset) Disjoint set ● We use a forest to represent this ● Each node is a element ● Two element is in same subset if they are in the same tree. Which means the root for two element is the same. ● Merging two subset equals to merging to tree into one. ● Below we have two subset. Implementing Disjoint Set ● We define parent(x) as parent of x ● Int find(int x) while (x is not root) x = parent(x) return x ● Void merge(int x, int y) set parent of x to y ● If x is in the same subset with y, find(x) = find(y) ● Otherwise find(x) <> find(y) ● Time complexity for find is O(N) ● Time complexity for merge is O(1) ● We can make it faster Path Compression Path Compression ● Each time we find the root of x, we change the parent all of its ancestor including x to root. ● Int find(int x) if x is root return x int root = find(parent(x)) set root as parent of x return root ● This make find operation O(N log N) Union by Rank ● Idea if simple. We should avoid making tree tall. So each find operation use less time. ● Define height of the tree as the max of distance of root to its leaves.
    [Show full text]
  • IOI Training Week 7 Advanced Data Structures Tim Dumol
    IOI Training Week 7 Advanced Data Structures Tim Dumol Contents 1 Range Minimum Query 1 1.1 Square-root (sqrt) Decomposition....................................1 1.2 Segment Trees...............................................2 1.3 Notes.....................................................3 2 Self-Balancing Binary Search Trees3 3 Bonus: More interesting data structures6 4 Problems 6 4.1 Bonus Problems..............................................6 5 References 6 1 Range Minimum Query This section rotates around a common problem: Definition 1 (Range Minimum Query (RMQ)). Given an integer array of fixed length, answer a set of queries of the form: \What is the minimum element in the range of the array from i to j?". The contents of the array may change between queries. The na¨ıve solution for RMQ has no setup time, and O(n) query time. We can improve on this by adding some setup time, and using some additional memory. We will discuss two approaches: square-root decomposition, and segment trees. 1.1 Square-root (sqrt) Decomposition √ √ The idea behind√ sqrt decomposition is simple: preprocess the array into n chunks√ of size n each (thus consuming O( n) extra memory), so that we can perform the query in O( n) time, by using the pre- processed chunks to compute the minimum for the parts√ of the range that have a full intersection with the chunks, and then traversing the remaining at most 2 n − 1 elements uncovered by the chunks1. To elaborate, in code2: struct SqrtDecomp f vector <int >∗ a r r ; vector <int> chunks ; int c h u n k s i z e ; int n chunks ; SqrtDecomp(vector <int> const ∗ arr) : arr(arr) f c h u n k s i z e = ( int ) s q r t ( arr −>s i z e ( ) ) ; n chunks = ( int ) c e i l ( arr −>s i z e ( ) /( double ) n chunks ) ; chunks.
    [Show full text]
  • Volumen 23 Número 2 ISSN 0121-750X E-ISSN 23448393 REVISTA CIENTÍFICA CUATRIMESTRAL
    i i i i Volumen 23 Número 2 ISSN 0121-750X E-ISSN 23448393 REVISTA CIENTÍFICA CUATRIMESTRAL 2018 i i i i i i i i Volumen 23 · Numero´ 2 · Ano˜ 2018 · ISSN 0121-750X · E-ISSN 2344-8393 ARBITROS´ EN ESTA EDICION´ REVISTA CIENTIFICA´ CUATRIMESTRAL Alvaro´ Angel´ Orozco Gutierrez,´ PhD. Carrera 7 No. 40-53 Universidad Tecnologica´ de Pereira. Colombia Edificio Administrativo Piso 7 - Facultad de Ingenier´ıa Sergio Rivera Rodriguez, PhD. Bogota,´ Colombia Universidad Nacional de Colombia Telefono:´ + 57 (1) 323 93 00 ext. 2413 Correo revista: Diego Cantor, PhD. revista [email protected] University of Western Ontario Robarts Research Institute. Canada´ http://revistas.udistrital.edu.co/ojs/index.php/reving Melissa Aguas de Hoyos, MSc. POSTURA EDITORIAL Y AUDIENCIA Universidad Nacional de Colombia La Revista INGENIERIA´ es una publicacion´ de caracter´ cient´ıfico con una periodi- cidad cuatrimestral editada por la Universidad Distrital Francisco Jose´ de Caldas. La Jose Fidel Torres Delgado, PhD. Revista esta´ dirigida a la comunidad academica,´ investigadores, egresados, sectores Universidad de los Andes. Colombia productivos y en general al publico´ interesado en los temas del campo de la Ingenier´ıa. Su principal objetivo es difundir y debatir avances en investigacion´ y desarrollo en las diferentes areas´ de la ingenier´ıa a traves´ de la publicacion´ de art´ıculos originales e Julio Cesar´ Londono˜ Ortega, MSc. ineditos,´ con pertinencia local o internacional. Universidad del Valle. Colombia EDITOR Andres Felipe Osorio Muriel, PhD. Sergio A. Rojas, PhD. Universidad ICESI. Colombia Universidad Distrital Francisco Jose´ de Caldas, Colombia Juan Carlos Figueroa, PhD. COMITE´ EDITORIAL Universidad Distrital F.J.
    [Show full text]