UVA 457 Linear Cellular Automata — 細胞自動機高效模擬
問題描述 給定 10 位 DNA 規則表(值 0-3),初始 40 格狀態(中央為 1,其餘 0)。每步根據左右鄰居與自身值之和作為 DNA 索引更新。模擬 5
NYOJ 869 切蛋糕 — 二分 + 幾何求弦長
問題描述 半徑 R 圓形蛋糕,一刀切成兩部分,面積比為 r(0 < r < 1)。求切痕(弦)長度。R ≤ 1000,r 精確到小數點後 4 位。 幾何關係
LeetCode Merge k Sorted Lists — 分治歸並鏈表 O(N log k) 解法
問題描述 合併 k 條已排序鏈表為一條有序鏈表。分析複雜度。 分治歸並思路 兩兩合併:merge(lists, l, r) 遞歸合併區間 [l, r] 的鏈表
HDU 4734 F(x) — 數位 DP 計算權值不超過 F(A) 的數個數
問題描述 定義十進制數 x 的權值 F(x) = Σ A_i * 2^{n-i}(A_i 為第 i 位數字)。給定 A, B,求 [0, B] 中有多少數 x
LeetCode 3Sum Closest — 排序雙指針求最接近目標三數之和
問題描述 給定數組與目標值,找三數使其和最接近目標(相等則最優)。返回該最接近和。 算法:3Sum 變種 排序數組。外層固定 i,內層雙指針 head, ta
POJ 1655 Balancing Act — 樹形 DP 求平衡點
問題描述 給定樹,刪除一個節點後,剩餘連通塊的最大節點數最小化。求該節點編號及最小最大塊大小。n ≤ 22222。 樹形 DP 思路 dfs(u, fa)
HDU 1284 錢幣兌換問題 — 完全背包求方案數
問題描述 有面值 1、2、3 的硬幣無限枚,求兌換金額 n 的方案數。多組測試。 完全背包 DP dp[j]:兌換金額 j 的方案數。初始 dp[0] = 1
HDU 4803 Poor Warehouse Keeper — 貪心 + 數學建模最優策略
問題描述 屏幕顯示數量 x、總價 y,初始 (1,1)。兩操作: 加總價:(x, x+y) 加數量:(x+1, y + ⌊y/x⌋)(單價不變) 目標達到給
HDU 4810 Wall Painting — 組合數學 + 異或性質按位計算
問題描述 給定 n 個數,對每個 day = 1..n,從中選 day 個數,計算所有選法的異或和,再求和。結果模 1,000,003。n ≤ 1000。 核
HDU 3790 最短路徑問題 — 雙準則 Dijkstra(距離優先、花費次之)
問題描述 圖中邊有兩個權值:距離 d 與花費 p。求從 s 到 t 的路徑,優先距離最短,距離相等時花費最小。n ≤ 1000,存在重邊。 改進 Dijkst
POJ 3061 Subsequence — 前綴和 + 二分查找 O(n log n) 解法
問題描述 給定長度 N (10 < N < 100,000) 的正整數序列(每個 ≤ 10000)與目標和 S (< 100,000,000)。求連續子序列和
百度之星 1001 Energy ConversionTime:能量轉換最少操作數求解
問題背景 魔法師百小度面臨石門考驗:需將石盤旋轉 X 度 開啟石門,消耗 N 點能量。當前剩餘能量 M 點,不足以直接開門。幸運的是,百小度掌握一種魔法:花費
LeetCode 4Sum — 四數之和雙指針去重完整解法
問題描述 給定整數數組 S 與目標值 target,找出所有不重複的四元組 (a,b,c,d) 使 a+b+c+d = target。四元組內非遞減,解集不含重
HDU 4662 MU Puzzle — 字符串變換規律與數學解法
問題描述 初始字符串 MI,允許三種操作: Mx → Mxx(M 後內容翻倍) III → U(三個 I 替換為 U) UU → (空)(移除 UU) 判斷
C++ this 指針深度解析:本質、生命週期、傳遞機制與模擬實現
基本概念 this 是類成員函數中的隱含指針,指向調用該函數的對象。只能在非靜態成員函數中使用。 等價調用示例 month = mn; // 顯式使用
ZOJ 3632 Watermelon Full of Water — 線段樹區間更新 + DP 優化
問題描述 每天必須吃西瓜,第 i 天可花費 cost[i] 買一個能吃 last[i] 天的西瓜。求讓前 n 天每天都有西瓜吃的最小總花費。n ≤ 50000。
C 字符串函數深度剖析:strcpy、strcmp、strlen 多種實現對比
字符串複製 strcpy 版本 1:下標遍歷 void strcpy1(char str1[], char str2[]) { int i = 0;
C++ 對象模型深度解析:內存佈局、虛函數表與虛繼承
基本對象模型 在 C++ 中,類對象的內存佈局遵循以下原則: 非靜態數據成員:存放在對象內部。 靜態數據成員:存放在對象外部(全局/靜態存儲區)。 靜態/非靜