Head First 设计模式第1章笔记:策略模式的三语言完整实现与核心原则
从「模拟鸭子」演进到策略模式 阶段一:简单继承(P2) Duck 基类含 quack()、swim()、display()。 MallardDuck、
HDOJ 1003 Maxsum:最大子数组和与区间端点追踪
问题描述 多测试例,每例给定长度 n 的整数序列(可正可负)。 求连续子数组的最大和,及该子数组的起始/结束下标(1-based)。 若多解,输出
汇编语言字符串复制实战:srcmsg 到 dstmsg 的两种寻址方式
实验目标 在 80x86 汇编中实现字符串复制:将 srcmsg 的内容逐字节复制到 dstmsg,并显示结果。演示寄存器间接寻址与基址变址寻址两种经典写法。
四數組和為零:雙指針掃描優化至 O(n² log n) 避免哈希崩潰
問題描述 四個列表 A, B, C, D,各長 n ≤ 4000。 求四元組 (a,b,c,d) 使 a+b+c+d = 0 的總數。 數值範圍
POJ 1195 Mobile Phones:二維樹狀數組動態維護矩陣區間和
問題描述 N ≤ 1024 的正方形廣場,座標 0~N-1。 操作 1:x y v,單點增減 v(手機數量)。 操作 2:x1 y1 x2 y2,
UVA 10034 Freckles:Prim 算法求平面點集最小生成樹
問題建模 給定 n ≤ 100 個平面點座標。 邊權 = 歐幾里得距離 sqrt((x1-x2)² + (y1-y2)²)。 求連接所有點的最小總
三數組求和查詢:兩兩合併 + 二分查找優化至 O(n² log n)
問題描述 三個序列 A, B, C,長度 L, N, M ≤ 500。 S ≤ 1000 次查詢:給定 X,判斷是否存在 Ai + Bj + Ck =
C++ string 與 C 風格字符串(char*/char[])深度對比
核心區別一覽 特性C++ std::stringC 風格 char*/char[] 本質標準庫類,封裝動態數組原始指針/固定數組 內存管理自動(R
POJ 1568 Find the Winning Move:4×4 井字棋極小極大搜索與 Alpha-Beta 剪枝
遊戲規則 4×4 棋盤,雙方輪流落子(X 先手,O 後手)。 四子連線(橫、豎、對角)獲勝,滿盤平局。 給定局面(X 回合),判斷 X 是否有必勝
HDU 2844 / POJ 1742 Coins:多重背包二進制優化求可組成面值數
問題描述 n ≤ 100 種硬幣,第 i 種面值 v[i]、數量 c[i]。 目標面值上限 m ≤ 100000。 求能組成的不同面值總數(1~m
POJ 3321 Apple Tree:DFS 序 + 樹狀數組動態維護子樹蘋果數
問題建模 樹上每節點初始有 1 顆蘋果。 操作 C x:翻轉節點 x 蘋果狀態(有→無、無→有)。 查詢 Q x:輸出以 x 為根的子樹內蘋果總數
UVa 10986 Sending email:Dijkstra 優先隊列優化與 SPFA 求最短路徑
問題建模 n ≤ 20000 個 SMTP 服務器,m ≤ 50000 條雙向光纜,延遲 w ≤ 10000。 求從 S 到 T 的最小總延遲,不可達
二叉搜索樹轉排序雙向鏈表:中序遞歸就地指針調整
問題描述 輸入一棵二叉搜索樹(BST),將其轉換為升序雙向鏈表。要求:不創建新節點,僅調整 left(前驅)與 right(後繼)指針。 核心思路:中序遍歷串
UVa 10099 The Tourist Guide:最大生成樹與 Floyd 求最少往返次數
問題本質 城市圖,邊權 = 巴士載客上限 P。 導遊需從 S 送 T 位遊客到 D,每趟導遊自佔 1 座位。 單趟實際載客 = 路徑上最小邊權 -
UVa 10048 Audiophobia:最小化路徑最大噪音的 Floyd 與 Kruskal 雙解
問題轉化 城市路口為點,街道為邊,邊權為噪音分貝。求從 c1 到 c2 的路徑,使路徑上最大邊權最小。即「最小化最大值」問題。 解法一:Floyd 變體 標準
UVa 567 Risk:Floyd-Warshall 算法求國家間最小征服步數
問題建模 20 個國家,邊表示邊界相連(無向、無權)。 輸入僅給出 i < j 的邊,需補全對稱矩陣。 多組查詢:求從國 A 到 B 的最短
線程參數傳遞全攻略:_beginthread 与 pthread_create 實戰
核心原則 線程函數簽名統一為 void *(void *arg),僅接受單一 void* 參數。傳遞多參數時,需封裝為結構體,傳遞結構體指針。 場景一:單個參
尋找最小的 K 個數:快選算法與最大堆兩大解法對比
問題描述 給定 n 個整數,求其中最小的 K 個數(順序不限)。 解法一:基於快速排序的 Partition(修改原數組) 以第 K 個元素為基準進行劃