大家好!在這次的鐵人賽中,我將以演算法與資料結構為主軸,深入淺出地探討它們的原理、優化技術,以及在各種情境中的應用。為了更加具體地理解艱澀的概念,也會時常插入一些題目來輔助學習。
具體來說,我們將探索策略層面上的各種演算法,包括枚舉、貪心、分治、動態規劃、圖論,以及它們的衍生演算法。除此之外我們也會學習如何使用啟發式演算法來尋找問題的最佳解,進而入門heuristic contest。希望大家在這次的鐵人賽中,能夠一同體驗到演算法與資料結構的魅力,並進一步掌握它們的應用。
利用圖論概念的搜尋 BFS (Breadth-First Search) Breadth-First Search (BFS) 是一種圖遍歷算法,用於搜索圖或樹...
分而治之 分而治之(Divide and Conquer)是一個古老且廣泛使用的演算法策略。其核心概念是將大問題分解為若干較小的子問題,獨立解決這些子問題,然後...
更多分治例題 快速冪 快速冪算法是一種高效計算大整數指數冪的方法。傳統的方法是通過連續乘法來計算 a 的 b 次方,但當 b 非常大時,這種方法的效率非常低。快...
資料結構是電腦科學中一個關鍵概念,它是關於如何以特定的方式組織和存儲數據,以便能夠有效地訪問和修改。資料結構不僅僅是關於數據的存儲,而是提供了一種在數據上執行操...
Stack Stack 資料結構的主要特性是「Last-In-First-Out」。這個特性就好像我們使用一個只能從頂部取放物品的盒子。 為了更加具體化這個概念...
Queue Queue 資料結構的主要特性是「First-In-First-Out」(FIFO)。這個特性就像我們排隊等待服務:最早來的人將是最早得到服務的人。...
Set Set 資料結構的主要特性是「元素的獨特性」和「無序性」。這個特性就像我們在生活中遇到的集合:每個元素都是獨特的,並且集合中的元素沒有特定的順序。 將其...
Priority Queue 主要特性 Priority Queue(優先隊列)是一個特別的資料結構,主要用於管理一組有序的元素。這些元素根據其優先級進行排序,...
Disjoint-set Data Structure 主要特性 Disjoint-set(並查集)是一種數據結構,用於追蹤和管理多個不相交的集合。其核心功能是...
起點與動機 在三十天前,我參加了 IT 鐵人賽,起初的動機很簡單,因為身邊有人要組隊報名,一時衝動就報了。經過這次比賽,我發現真的!透過寫作可以鞏固自己的知識基...