[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"doc-seo-267237-105":3,"detail-sidebar-cat-0-en-105":81,"doc-detail-267237-en":130},{"code":4,"msg":5,"data":6},0,"ok",{"site_id":7,"language":8,"slug":9,"title":10,"keywords":11,"description":12,"schema_data":13,"social_meta":74,"head_meta":76,"extra_data":78,"updated_unix":80},105,"en","competitive-programming-algorithm-and-data-structures-guide","Competitive Programming - Algorithm and Data Structures Guide","","A structured competitive programming guide organized from problem-type identification to core algorithm design. The material covers algorithm analysis, programming-language mastery, and systematic code testing, then progresses through key topics: data structures and custom libraries (graph, union-find, segment tree, Fenwick tree) and major problem-solving paradigms such as complete search, divide-and-conquer, greedy, and dynamic programming. Advanced graph methods include traversal, spanning trees, shortest paths, maximum flow, and special graphs, with chapter notes throughout.",{"@graph":14,"@context":73},[15,34,56],{"@type":16,"itemListElement":17},"BreadcrumbList",[18,23,27,31],{"item":19,"name":20,"@type":21,"position":22},"https://docshare.wps.com","Home","ListItem",1,{"item":24,"name":25,"@type":21,"position":26},"https://docshare.wps.com/document/","Document",2,{"item":28,"name":29,"@type":21,"position":30},"https://docshare.wps.com/document/technology/","Technology",3,{"item":32,"name":10,"@type":21,"position":33},"https://docshare.wps.com/document/competitive-programming-algorithm-and-data-structures-guide/267237/",4,{"url":32,"name":10,"@type":35,"image":36,"author":41,"headline":10,"publisher":44,"fileFormat":47,"inLanguage":8,"description":12,"dateModified":48,"datePublished":49,"encodingFormat":47,"isAccessibleForFree":50,"interactionStatistic":51},"DigitalDocument",{"url":37,"@type":38,"width":39,"height":40},"https://docshare.wps.com/thumbnails/competitive-programming-algorithm-and-data-structures-guide/267237.png","ImageObject",300,407,{"name":42,"@type":43},"Aran","Person",{"url":19,"name":45,"@type":46},"DocShare","Organization","application/pdf","2026-10-18","2026-09-14",true,{"@type":52,"interactionType":53,"userInteractionCount":55},"InteractionCounter",{"@type":54},"ViewAction",9,{"@type":57,"mainEntity":58},"FAQPage",[59,65,69],{"name":60,"@type":61,"acceptedAnswer":62},"How does the guide help identify problem types quickly?","Question",{"text":63,"@type":64},"It provides tips focused on quickly recognizing problem categories, then applying suitable strategies based on the identified type.","Answer",{"name":66,"@type":61,"acceptedAnswer":67},"Which main data structures and libraries are covered?",{"text":68,"@type":64},"It discusses both built-in data structures and custom libraries, including graphs, union-find disjoint sets, segment trees, and Fenwick trees.",{"name":70,"@type":61,"acceptedAnswer":71},"What graph algorithms are included for shortest paths and flow?",{"text":72,"@type":64},"It covers single-source and all-pairs shortest paths and includes maximum flow methods such as Ford–Fulkerson and Edmonds–Karp.","https://schema.org",{"og:url":32,"og:type":75,"og:title":10,"og:site_name":45,"og:description":12},"article",{"robots":77,"canonical":32},"index,follow",{"doc_id":79,"site_id":7},267237,1789416248,{"code":4,"msg":82,"data":83},"success",[84,88,92,96,101,105,110,115,119,122,126],{"id":22,"doc_module":4,"doc_module_name":25,"category_name":85,"show_sort_weight":86,"slug":87},"Story & Novel",90,"story-novel",{"id":26,"doc_module":4,"doc_module_name":25,"category_name":89,"show_sort_weight":90,"slug":91},"Literature",80,"literature",{"id":33,"doc_module":4,"doc_module_name":25,"category_name":93,"show_sort_weight":94,"slug":95},"Exam",70,"exam",{"id":97,"doc_module":4,"doc_module_name":25,"category_name":98,"show_sort_weight":99,"slug":100},5,"Comic",60,"comic",{"id":102,"doc_module":4,"doc_module_name":25,"category_name":29,"show_sort_weight":103,"slug":104},6,50,"technology",{"id":106,"doc_module":4,"doc_module_name":25,"category_name":107,"show_sort_weight":108,"slug":109},7,"Healthcare",40,"healthcare",{"id":111,"doc_module":4,"doc_module_name":25,"category_name":112,"show_sort_weight":113,"slug":114},8,"Research & Report",30,"research-report",{"id":55,"doc_module":4,"doc_module_name":25,"category_name":116,"show_sort_weight":117,"slug":118},"Religion & Spirituality",20,"religion-spirituality",{"id":117,"doc_module":4,"doc_module_name":25,"category_name":120,"show_sort_weight":117,"slug":121},"World Cup","world-cup",{"id":123,"doc_module":4,"doc_module_name":25,"category_name":124,"show_sort_weight":123,"slug":125},10,"Lifestyle","lifestyle",{"id":127,"doc_module":4,"doc_module_name":25,"category_name":128,"show_sort_weight":97,"slug":129},19,"General","general",{"code":4,"msg":82,"data":131},{"doc_id":79,"user_id":132,"nickname":42,"user_avatar":133,"doc_module":4,"category_id":102,"category_name":29,"doc_title":10,"doc_description":12,"doc_content":134,"file_id":135,"file_url":136,"file_type":137,"file_size":138,"view_count":55,"is_deleted":4,"is_public":22,"is_downloadable":22,"audit_status":22,"page_count":139,"language":140,"language_code":8,"site_id":7,"html_lang":8,"table_of_contents":141,"faqs":142,"seo_title":143,"seo_description":12,"update_tm":80,"read_time":144},137455076865,"https://ap-avatar.wpscdn.com/davatar_29158cc5080c5b710cf443261637dec0","Contents  \nForeword v  \nPreface vi  \nAuthors’ Proﬁles and Copyright xi  \nConvention and Problem Categorization xii  \nList of Abbreviations xiii  \nList of Tables xiv  \nList of Figures xv  \n1 Introduction 1  \n1.1 Competitive Programming ................................. 1  \n1.2 Tips to be Competitive .................................. 2  \n1.2.1 Tip 2: Quickly Identify Problem Types ..................... 4  \n1.2.2 Tip 3: Do Algorithm Analysis ........................... 5  \n1.2.3 Tip 4: Master Programming Languages ..................... 8  \n1.2.4 Tip 5: Master the Art of Testing Code ...................... 10  \n1.2.5 Tip 6: Practice and More Practice ........................ 12  \n1.2.6 Tip 7: Team Work (ICPC Only) ......................... 12  \n1.3 Getting Started: The Ad Hoc Problems ......................... 13  \n1.4 Chapter Notes ....................................... 19  \n2 Data Structures and Libraries 21  \n2.1 Overview and Motivation ................................. 21  \n2.2 Data Structures with Built-in Libraries .......................... 22  \n2.2.1 Linear Data Structures .............................. 22  \n2.2.2 Non-Linear Data Structures ............................ 26  \n2.3 Data Structures with Our-Own Libraries ......................... 29  \n2.3.1 Graph ........................................ 29  \n2.3.2 Union-Find Disjoint Sets ............................. 30  \n2.3.3 Segment Tree .................................... 32  \n2.3.4 Fenwick Tree .................................... 35  \n2.4 Chapter Notes ....................................... 38  \n3 Problem Solving Paradigms 39  \n3.1 Overview and Motivation ................................. 39  \n3.2 Complete Search ...................................... 39  \n3.2.1 Examples ...................................... 40  \n3.2.2 Tips ......................................... 41  \n3.3 Divide and Conquer .................................... 47  \nCONTENTS  \n􀀂c Steven & Felix  \n3.3.1 Interesting Usages of Binary Search ....................... 47  \n3.4 Greedy ............................................ 51  \n3.4.1 Examples ...................................... 51  \n3.5 Dynamic Programming .................................. 55  \n3.5.1 DP Illustration ................................... 55  \n3.5.2 Classical Examples ................................. 61  \n3.5.3 Non Classical Examples .............................. 66  \n3.6 Chapter Notes ....................................... 70  \n4 Graph 71  \n4.1 Overview and Motivation ................................. 71  \n4.2 Graph Traversal ...................................... 71  \n4.2.1 Depth First Search (DFS) ............................. 71  \n4.2.2 Breadth First Search (BFS) ............................ 72  \n4.2.3 Finding Connected Components (in an Undirected Graph) .......... 73  \n4.2.4 Flood Fill-Labeling/Coloring the Connected Components .......... 74  \n4.2.5 Topological Sort (of a Directed Acyclic Graph) ................. 75  \n4.2.6 Bipartite Graph Check ............................... 76  \n4.2.7 Graph Edges Property Check via DFS Spanning Tree ............. 76  \n4.2.8 Finding Articulation Points and Bridges (in an Undirected Graph) ...... 77  \n4.2.9 Finding Strongly Connected Components (in a Directed Graph) ....... 80  \n4.3 Minimum Spanning Tree .................................. 84  \n4.3.1 Overview and Motivation ............................. 84  \n4.3.2 Kruskal’s Algorithm ................................ 84  \n4.3.3 Prim’s Algorithm .................................. 85  \n4.3.4 Other Applications ................................. 86  \n4.4 Single-Source Shortest Paths ............................... 90  \n4.4.1 Overview and Motivation ............................. 90  \n4.4.2 SSSP on Unweighted Graph ............................ 90  \n4.4.3 SSSP on Weighted Graph ............................. 91  \n4.4.4 SSSP on Graph with Negative Weight Cycle ................... 93  \n4.5 All-Pairs Shortest Paths .................................. 96 ","cbCaiqEgVXfS69Wl","https://ap.wps.com/l/cbCaiqEgVXfS69Wl","pdf",14074399,262,"English","# Introduction\n## Competitive Programming\n## Tips to be Competitive\n# Data Structures and Libraries\n## Built-in Libraries\n## Our-Own Libraries\n# Problem Solving Paradigms\n## Complete Search\n## Divide and Conquer\n## Greedy\n## Dynamic Programming\n# Graph\n## Graph Traversal\n## Minimum Spanning Tree\n## Single-Source Shortest Paths\n## All-Pairs Shortest Paths\n## Maximum Flow\n## Special Graphs","[{\"question\":\"How does the guide help identify problem types quickly?\",\"answer\":\"It provides tips focused on quickly recognizing problem categories, then applying suitable strategies based on the identified type.\"},{\"question\":\"Which main data structures and libraries are covered?\",\"answer\":\"It discusses both built-in data structures and custom libraries, including graphs, union-find disjoint sets, segment trees, and Fenwick trees.\"},{\"question\":\"What graph algorithms are included for shortest paths and flow?\",\"answer\":\"It covers single-source and all-pairs shortest paths and includes maximum flow methods such as Ford–Fulkerson and Edmonds–Karp.\"}]","Competitive Programming - Algorithm and Data Structures Guide | PDF",660]