每日一算法:高效查找数组中最小的 K 个元素
问题描述 输入 n 个整数,输出其中最小的 k 个数。例如输入 1,2,3,4,5,6,7,8,最小的 4 个数为 1,2,3,4。 解法对比 方法时间复杂
HDU 1035 Robot Motion:机器人运动模拟与环路检测
题目大意 给定一个 n x m 的网格,每个格子包含指令 N/S/E/W(上/下/右/左)。机器人从第 1 行第 k 列开始,按指令移动。若走出边界则输出步数;
深入理解 fork 与 exec:进程终止位置分析
引言 在 Unix/Linux 系统编程中,fork() 与 exec() 是进程控制的核心函数。许多初学者对“调用 exec() 后进程在何处终止”存在误解。
HDU 后缀数组倍增算法详解与高度数组构建
引言 后缀数组是字符串处理中的核心数据结构,广泛应用于子串查找、最长公共前缀(LCP)计算等问题。本文基于 HDU 相关题目,深入解析倍增算法构建后缀数组的原理
HDU 4419 矩形面積並進階:三顏色線段樹掃描線算法
題目大意 給定 N 個軸平行矩形,每個矩形有顏色 R、G、B 三種之一。矩形可重疊,重疊區域顏色混合(如 R+G=RG,R+G+B=RGB)。求七種顏色區域(R
HDU 4414 Finding Crosses:暴力枚舉中心點檢測十字架
題目大意 給定 n × n (3 ≤ n ≤ 50) 網格,字符 # 和 o。找出所有符合條件的「十字架」: 中心為 #。 四個方向(上下左右)連續 # 長度
HDU 1216 幸运数字:约瑟夫环变体模拟与链表优化
題目大意 經典「幸運數字」問題(Lucky Numbers / Josephus 變體): 初始序列:2, 3, 4, ..., 35000(或足夠大)。 第
POJ 1182 食物鏈:經典種類並查集(模 3 關係)完整解析
題目大意 N ≤ 50,000 動物,三類 A, B, C 形成環狀食物鏈:A→B→C→A。 K ≤ 100,000 句話: 1 X Y:X 和 Y 同類。
POJ 1703 Find them, Catch them:種類並查集(模 2 關係)判斷幫派關係
題目大意 N ≤ 10^5 名罪犯,屬於「龍幫」或「蛇幫」兩派。M ≤ 10^5 條訊息: D a b:a 和 b 屬於不同幫派。 A a b:詢問 a 和
POJ 1733 Parity Game:帶權並查集(異或關係)離散化解法
題目大意 長度 N ≤ 10^9 的 0/1 序列,M ≤ 5000 個查詢:區間 [L, R] 中 1 的個數奇偶性(even/odd)。按順序處理查詢,找出
C++ const 與 C# readonly/屬性:讓對象變成「常量」的正確姿勢
C++:const 修飾對象 → 常量語義 基本規則 class MyClass { public: int age; string name
Delphi 線程池與任務隊列完整實現:動態擴縮容、優先級調度與空閒回收
架構總覽 本實現提供一個生產級 TThreadPool 組件,核心特性: 三隊列設計:任務隊列(等待執行)、空閒線程隊列、忙碌線程隊列 動態縮放:最小/最大線
C++ 模板與 C# 泛型深度對比:編譯期單態化 vs 執行期類型參數化
為什麼需要泛型編程? 相同邏輯適用於多種類型: 數值類型:max(a, b)、算術運算 容器算法:sort、find、swap 設計模式:工廠、策略、訪問者
C++ 動態記憶體分配全解析:new/delete、malloc/free 與智能指針最佳實踐
為什麼需要動態記憶體? 靜態/自動儲存期(棧)受限於: 大小必須編譯期確定:陣列長度無法根據運行時輸入調整。 棧空間極小:通常 1~8 MB,大對象(如 50
C++ 程式崩潰自動生成 Dump 文件:MiniDumpWriteDump 實戰指南
背景痛點 軟體上線後在客戶端偶發崩潰,現場難以重現,傳統日誌無法捕捉調用棧與變量值。Windows 提供的 結構化異常處理 (SEH) 配合 MiniDumpW
HDU 3038 How Many Answers Are Wrong:帶權並查集檢測區間和矛盾
題目大意 TT 寫下長度為 N (≤ 200,000) 的整數序列。FF 詢問 M (≤ 40,000) 個區間和查詢:第 A_i 到 B_i 的和為 S_i。
Petya and Coloring:組合數學與動態規劃計算著色方案數
題目重述 給定 n 塊磚排成一行,m 列(即 m 條平行線),共 n × m 個格子。有 k 種顏色。要求: 最左列與最右列使用的顏色集合 完全相同(設大小為
HDOJ 4203 Doubloon Game:取石子遊戲的周期性規律與 O(1) 解法
題目大意 有 n 枚硬幣,雙方輪流取走,每次只能取 m^k(k ≥ 0,即 1, m, m², …)枚。先手無法移動則負。輸出:若先手必敗印 0,否則印 第一步