Palindrome Number - 回文數判定(不使用額外空間)
問題描述 判斷整數是否為回文數。負數不是回文。不允許使用額外空間(如轉字符串)。 方法一:反轉後半部比較 反轉數字的後半部分,與前半部分比較。處理奇數位時去掉
NYOJ 127 星際之門 - 完全圖生成樹計數 + 快速冪
問題描述 N 個星系,修建 N-1 條蟲洞連通所有星系。有多少種修建方案?結果模 10003。N≤1e6,T≤100。 數學結論:Cayley 公式 N 個標
POJ 1704 - 階梯博弈 / Georgia and Bob
問題描述 n 枚棋子在 x 正半軸,兩人輪流向左移動棋子,不可超過其他棋子或越界(x<0)。無法移動者負。求獲勝者。 等價轉化:階梯博弈 將棋子位置排序:x1
HDU 1002 Let the Balloon Rise - 字符串頻率統計
問題描述 輸入 n 個氣球顏色字符串(小寫字母,長≤15),輸出出現次數最多的顏色。n=0 結束。保證唯一眾數。 解法:哈希表/映射統計 用 unordere
Effective STL 第 7 條:容器中 new 的指針必須手動 delete
核心觀點 STL 容器析構時會自動析構其**元素**,但若元素是**裸指針**,指針本身的析構函數不做任何事,**不會自動 delete 指向的對象**,導致內
C++ 虛函數與虛析構函數 - 避免內存洩露的關鍵
問題現象 基類指針指向派生類對象,delete 時若基類析構函數非虛函數,只調用基類析構,派生類析構不被調用,導致派生類資源洩露。 代碼對比 非虛析構(錯誤)
POJ 2484 - 環形取石子遊戲(SG 函數/對稱策略)
問題描述 n 個石子圍成環,兩人輪流取,每次可取 1 個或相鄰 2 個。無法取者負。輸出獲勝者(Alice 先手,Bob 後手)。 博弈論分析 若為一條線(非
HDU 5148 Cities - 樹形 DP 選 k 點最小化期望距離
問題描述 樹上 n≤2000 點,選 k≤50 個點。從中等概率隨機選兩點,最小化它們距離的期望。輸出期望 × k²(即所有選點對距離和的最小值)。 DP 狀
NYOJ 21 三個水杯 - BFS 狀態空間搜索
問題描述 V3,初始最大杯滿,其余空。操作:任意兩杯倒水(倒滿或倒空)。求最少操作次數達到目標狀態 (E1,E2,E3),不可達輸出 -1。 BFS 狀態定義
降階法計算行列式 C# 實現:Bug 修正與優化
背景 遞歸降階法(拉普拉斯展開)計算行列式,原代碼在隨機展開行時索引越界,已修正。 修正點 隨機選取展開行 `i`(1-based),迴圈列 `j` 1..n
LeetCode Roman to Integer - 羅馬數字轉整數解析
問題描述 給定羅馬數字字符串(範圍 1-3999),轉為整數。羅馬數字規則:I=1,V=5,X=10,L=50,C=100,D=500,M=1000。左減右加:
算法導論:Huffman 編碼與 C++ 優先隊列實現
Huffman 編碼原理 給定字符及其權重(頻率),構建最優前綴編碼樹。算法: 將每個字符作為葉子節點放入最小堆(優先隊列),鍵為權重。 重複:取出權重最小的
NYOJ 20 吝嗇的國度 - DFS 求父節點
問題描述 N 個城市,N-1 條路構成樹。給定起點 S,對每個城市 i,求從 S 走到 i 必須經過的上一個城市(即父節點),S 輸出 -1。 解法:以 S
HDU 1022 Train Problem I - 棧模擬進出棧序列驗證
問題描述 有 n 輛火車 (n≤9),給定進棧序列和出棧序列,判斷出棧序列是否合法。合法則輸出操作序列(in/out),否則輸出 No。 棧模擬算法 用棧模擬
九度 OJ 1015 還是 A+B - 末尾 K 位比較
問題描述 輸入 A, B, K (A,B < 10000, K ≤ 8)。若 A、B 末尾 K 位數字相同,輸出 -1;否則輸出 A+B。多組測試,A=B=0
九度 OJ 1011 最大連續子序列和 - DP 輸出首尾元素
問題描述 給定 K 個整數序列,求最大連續子序列和,並輸出該子序列的第一個和最後一個元素。若多解,取下標最小者;若全負,和為 0,輸出首尾元素。 DP 狀態定