原创 【堆排 && 思路】數據結構實驗之排序四:尋找大富翁

一個看似很水但很坑的題:數據結構實驗之排序四:尋找大富翁 這題時間壓的很短只有200ms,用平常的堆排序。直接T,別問我怎麼知道(心累啊),要不也不會寫這篇博客。直接上代碼。這題關鍵在於用了一個很巧妙的思想,沒有去對所有1e6的數

原创 【字典樹】2828 -> 字典樹

字典樹 先上個定義。 又稱單詞查找樹,Trie樹,是一種樹形結構,是一種哈希樹的變種。典型應用是用於統計,排序和保存大量的字符串(但不僅限於字符串),所以經常被搜索引擎系統用於文本詞頻統計。它的優點是:利用字符串的公共前綴來減少

原创 【堆 && 哈弗曼樹】樹-堆結構練習——合併果子之哈夫曼樹

堆排序的應用之哈夫曼樹 1952年, David A. Huffman提出了一個不同的算法,這個算法可以爲任何的可能性提供出一個理想的樹。香農-範諾編碼(Shanno-Fano)是從樹的根節點到葉子節點所進行的的編碼,哈夫曼編碼算

原创 【二叉樹】數據結構實驗之二叉樹的建立與遍歷 2136

寫這篇主要因爲這題概括了我現在學到的二叉樹的大部分知識點,所以每一個都用函數標識了。 題目:數據結構實驗之二叉樹的建立與遍歷 #include <stdio.h> #include <stdlib.h> #include <str

原创 【平衡二叉樹】數據結構實驗之查找二:平衡二叉樹

平衡二叉樹 剛開始接觸平衡二叉樹,沒有什麼太多要分析的。博客裏有很多大佬們都寫的很好。平衡二叉樹就是每個節點的子樹的高度差不超過1的二叉樹。可以快速搜索數值的一種算法,最糟的情況就是一直找到底,但也是log(n)的。還是快很多。

原创 【KMP】數據結構實驗之串三:KMP應用

KMP基礎 這是個KMP算法的裸題,沒什麼好說的主要是爲了儲備算法,以後好看,實名安利一波嗶哩嗶哩,裏面大佬講的真的都挺好的,再結合一下博客應該可以比較直觀的對KMP有大概認識。 數據結構實驗之串三:KMP應用 :這題本來可以直接

原创 【線段樹】3771->數組計算機

線段樹基礎 老樣子先上定義 線段樹是一種二叉搜索樹,與區間樹相似,它將一個區間劃分成一些單元區間,每個單元區間對應線段樹中的一個葉結點。 使用線段樹可以快速的查找某一個節點在若干條線段中出現的次數,時間複雜度爲O(logN)。而

原创 【蔡勒公式 】根據給定的年月日求出對應星期幾

蔡勒公式 蔡勒(Zeller)公式,是一個計算星期的公式,隨便給一個日期,就能用這個公式推算出是星期幾。時間複雜度:O(1)。具體的在紅書P229有。 若要計算的日期是在1582年10月4日或之前,公式則爲: 如果沒有是之後的話

原创 【線段樹】淺析--線段樹

線段樹 瞭解線段樹,什麼線段樹,線段樹定義; 創建線段樹; 線段樹的維護; 線段樹的查詢; 題目練習; 核心:線段樹維護的是區間信息!!!! 一、瞭解線段樹 : 題目一: 10000個正整數,編號1到10000,用A[1]

原创 【簡單dp】2080->最長公共子序列問題 動態規劃

最長公共子序列問題 關於思路 因爲比較菜所以只能寫出dp的一些皮毛 我們用Ax表示序列A的連續前x項構成的子序列,即Ax= a1,a2,……ax, By= b1,b2,……by, 我們用LCS(x, y)表示它們的最長公共子序列長

原创 【棧 && 單調棧】淺談單調棧與單調棧的理解

單調棧 定義: 單調棧,顧名思義,是棧內元素保持一定單調性(單調遞增或單調遞減)的棧。這裏的單調遞增或遞減是指的從棧頂到棧底單調遞增或遞減。既然是棧,就滿足後進先出的特點。與之相對應的是單調隊列。 實現: 先上結論: 利用單調棧,

原创 【AC自動機】多模匹配算法

寫了個模板題,加強版借鑑大佬的代碼,前置技能KMP(感覺沒啥用主要是思想),字典樹。 P3808 【模板】AC自動機(簡單版) #include <queue> #include <cstdlib> #include <cmat

原创 博客園地址

https://www.cnblogs.com/zyysyang/

原创 【反轉(開關問題)】Face The Right Way

Step1 Problem 原題 N頭牛排成了一列。每頭牛頭向前或向後。爲了讓所有的牛都面向前方,農夫約翰買了一臺自動轉向的機器。這個機器在購買時就必須設定一個數值K,機器每操作一次恰好使K頭連續的牛轉向。求讓所有牛都能面向

原创 【尺取法】Jessica's Reading Problem

Step1 Problem 原題 一個人複習一本書,這本書的每一頁都有一個知識點ai,每一頁的知識點可能會與其他頁的知識點相同,問你如何讀最少頁,將所以知識點讀完。 Step2 Ideas: 尺取法通常是指對數組保存