HDU 1535 Invitation Cards:雙向 Dijkstra 求有向圖雙向最短路之和
問題:有向圖,節點 1 向 2..n 派發邀請函並收回。求所有節點往返(1→i 和 i→1)最短路長度之和。n, m ≤ 100,000。 關鍵洞察:反向建圖
HDU 2521 反素數:預處理約數個數 + 區間查詢最大值
問題:多測試用例,每次給定區間 [m, n],求區間內約數個數最多的數(若有多個取最小者)。n ≤ 5000。 預處理約數個數 利用質因數分解公式:N = p
TopCoder SRM 615 Div2 1000 MergeStrings:DFS + 記憶化求字典序最小合法洗牌
問題:給定字符串 S(含大寫字母與 ?)、A、B。將 ? 替換為字母,使得結果字符串可由 A 和 B 交錯洗牌得到(保持各自相對順序)。若多解,返回字典序最小者
NEUOJ 1302 最大子序列:雙向 DP 求兩段不重疊子數組最大和
問題:給定長度 N (≤1,000,000) 的整數序列(正負皆有),找出兩段不重疊的連續子序列,使其元素和之和最大。子序列可為空。 雙向 DP 思想 正向
C++ 實戰:教師學生信息管理系統(抽象類、繼承、鏈表、多文件組織)
本項目實現一個控制台版師生信息管理系統,綜合運用 C++ 核心特性:抽象基類、繼承多態、鏈表數據結構、多文件模塊化編譯、函數指針回調。 類層次結構 CPer
POJ 2195 Going Home:最小費用最大流解決人屋匹配
問題:n×m 網格中,m 代表人,H 代表房子,人數等於房子數。每人分配一間房,費用為曼哈頓距離。求最小總費用。 網絡流建模 超級源點 S → 每個人:容量
ZOJ 2562 More Divisors:DFS 搜索反素數(約數個數最多者)
問題:給定 N,求不超過 N 的最大反素數(即約數個數最多的數,若有多個取最小者)。 數學性質 反素數的質因數分解中,質因數必為連續的最小質數(2, 3,
HDU 1358 Period:KMP Next 數組求前綴周期性
問題:對字符串 S 的每個前綴(長度 i),判斷其是否為某個子串的 1) 次重複構成(即 S[0..i-1] = A^K),若是則輸出 i 和最大的 K。 核
.NET DataTable 動態創建、添加列與行綁定 HTML 輸出
在 ASP.NET 中,DataTable 是內存中表格數據的核心容器。本文演示如何動態創建表結構、添加列、填充行,並綁定生成 HTML 字符串輸出。 核心步
UVA 10382 Watering Grass:貪心算法解區間覆蓋問題
題目大意:長 l、寬 w 的矩形草坪,中心線上安裝 n 個噴頭,每個噴頭位置 pos、半徑 r。求最少開啟多少噴頭才能覆蓋整個草坪,不可覆蓋輸出 -1。 幾何
數組循環右移:三次反轉法 O(1) 空間原地解決
問題:將長度為 n 的數組循環右移 m 位(即前 m 個元素移到末尾),要求原地操作,空間 O(1)。 三次反轉法(經典算法) 整體反轉:reverse(0
HDU 1018 Big Number:大整數數學題解析
題目描述:HDU 1018 要求計算大整數運算,涉及高精度加法、乘法或階乘等運算,超出標準數據類型範圍,需自行實現大數存儲與運算。 核心思路 用數組或 st
HDOJ 1686 Oulipo:AC 自動機高效統計模式串出現次數
問題描述:給定模式串 W(長度 ≤ 10,000)和文本串 T(長度 ≤ 1,000,000),統計 W 在 T 中出現的次數(允許重疊)。字符集為大寫字母 A
策略模式:封裝算法族,實現運行時行為熱插拔
策略模式定義了一系列算法,將每個算法封裝起來,使它們可以相互替換。此模式讓算法的變化獨立於使用算法的客戶端。 三大設計原則 找出變化點,封裝起來:將可能變化
C++ 類方法設計全解析:static、const、重載、默認參數與 inline
類的方法設計是 C++ 面向對象編程的核心。本文系統梳理五大類方法:靜態方法、常量方法、重載方法、默認參數、內聯方法,助你寫出高效、安全、可維護的代碼。 一、
HDU 1839:二分容量 + Dijkstra 求延遲約束下的最大帶寬路徑
題目大意:給定一張無向圖,每條邊有容量 h 和延遲 w。需從節點 1 到節點 n 選擇一條路徑,使得路徑上最小容量最大化,且總延遲不超過給定閾值 T。 解題思
HDOJ 1556:差分陣列巧解區間統計,告別線段樹超時
在解決 HDOJ 1556 這道題目時,最直觀的做法是對每個區間直接遍歷累加,但這種 O(n²) 的複雜度必定會導致超時。網上常見的題解動輒引入線段樹等高級數據