POJ 1930 循環小數轉分數:最小分母法 C++ 實現詳解
題目大意 給定一個循環小數字串(如 0.12345...),但不知循環節從哪一位開始。規定:在所有可能的循環節劃分中,選擇化簡後分母最小的分數輸出。 數學基礎
NOIP 2009 靶形數獨:搜索與剪枝優化完全指南
題目背景與規則 靶形數獨是在標準 9×9 數獨基礎上增加了分值系統:棋盤呈同心圓狀,中心格 10 分,向外每層遞減 1 分,最外層 6 分。目標是填滿數獨並使總
POJ 1836 Alignment:最長遞增子序列(LIS)變形問題詳解
POJ 1836 Alignment 題目分析 這道經典題目要求從一隊無序排列的士兵中,讓最少的人出列,使得剩餘士兵的身高呈現「先遞增後遞減」的序列。換句話說,
VS 編譯錯誤 C2664:CERT_SELECT_STRUCT 類型不匹配的編碼設置修復
錯誤現象 error C2664: BOOL (PCERT_SELECT_STRUCT_A) : cannot convert parameter 1 from
HDU 5945 Fxx and Game:單調隊列優化 DP 達到 O(n) 解法詳解
題目大意 從數字 n 變到 1,每步可選兩種操作之一: 減去 [1, t] 範圍內的任意整數(代價 1)。 若當前數能被 k 整除,可除以 k(代價 1)。
輸出所有 LCS(最長公共子序列)的正則表達式法
LCS 基礎回顧 給定序列 X, Y,動態規劃構建 C[i][j](長度)與 B[i][j](回溯方向)。標準算法僅記錄單一路徑,無法輸出多解。 改進:記錄分
USACO 2.2.2 Subset Sums:0-1 背包求子集和計數
問題描述 給定整數 n (1 ≤ n ≤ 39),集合 {1, 2, ..., n}。求有多少種方式將其分成兩個子集,使兩子集元素和相等。結果對 2^31-1
Qt QScrollArea 實現多控件滾動顯示的正確姿勢
場景與誤區 需求:在 QScrollArea 中動態添加多個控件(如按鈕列表),超出可視區域自動出現滾動條。 誤區:直接反復調用 setWidget(butto
C++ STL priority_queue 完全指南:從基本用法到實戰三大經典案例
優先隊列核心概念 priority_queue 是容器適配器,底層默認用 vector 實現最大堆。每次取出優先級最高(默認最大)的元素,而非 FIFO。核心操
POJ 1811 大整數質數判斷與分解:Miller-Rabin + Pollard-Rho 模板詳解
問題背景 判斷 64 位整數(≤ 2^63-1)是否為質數,並求其最小質因子。常規試除法 O(√n) 完全不可行,需概率性質數測試 + 因子分解算法。 核心組
C/C++ 三大調用約定 __stdcall、__cdecl、__fastcall 深度對比
概述 調用約定規定了函數參數入棧順序、棧平衡責任方、編譯器名字修飾規則等。三種主流約定: __stdcall:Windows API 默認 __cdecl:C
SDUT 3343:從先序與中序遍歷重構二叉樹並求高度
問題描述 給定二叉樹的先序遍歷序列和中序遍歷序列(均為不含重複字母的字符串,長度 N ≤ 50),重構二叉樹並輸出其高度。多組測試數據,以 EOF 結束。 核
UVA 253 Cube Painting:立方體旋轉等價判定全解析
問題描述 給定兩個已著色的立方體(6 面各有一顏色),判斷它們是否可以通過旋轉完全重合。顏色用字符表示,輸入為長度 12 的字符串,前 6 字符為第一個立方體,
C++ 值傳遞的三大局限與引用/指針解決方案
值傳遞的三大痛點 在 C++ 中,函數參數默認按值傳遞(複製實參),但在以下三種場景下會導致嚴重問題: 需修改實參值:值傳遞僅操作副本,無法將修改反映回原變
C++ 字符數組實現任意進制轉換:棧與隊列的巧妙應用
前言 進制轉換是程式設計基礎。對於超出基本類型範圍的大數,使用字符數組存儲是穩健的選擇。本文展示一個完整的 C++ 實現,支持任意進制(2~16)互轉,包含整數
UVA 10090 Marbles:擴展歐幾里得算法求解最小成本裝箱問題
問題描述 給定 n 顆彈珠,以及兩種盒子:第一種盒子價格 c1 美元,恰好可裝 n1 顆;第二種盒子價格 c2 美元,恰好可裝 n2 顆。要求將所有彈珠裝入盒子