C++命名空間完整指南:從基礎到進階應用
1. 命名空間基礎 命名空間解決標識符衝突,提供作用域隔離。定義於全局或嵌套命名空間中,不可在函數/類內部定義。 成員類型 變量、常量、函數、類/結構體/聯合
POJ 2492 A Bug's Life:帶關係的並查集判斷二分圖
問題描述 n隻蟲子,m對交互記錄。蟲子分雌雄兩群,交互只發生在異性之間。判斷記錄是否自洽(即圖是否為二分圖)。輸出Suspicious bugs found!或
UVA 10603 Fill:水壺問題的最小倒水量——狀態空間搜索優化
問題描述 三個容量為A,B,C的水壺,初始狀態(0,0,C)。目標獲得恰好target升水(在任一壺中)。操作:將一壺水倒入另一壺直到源空或目標滿。求到達目標的
POJ 1035 Spell Checker:編輯距離為1的單詞糾錯
問題描述 給定字典和待檢查單詞列表。對每個待檢查單詞: - 若在字典中 → word is correct - 否則找出字典中通過單次編輯可得到的單詞: 1
Sicily 1299 Academy Awards:統計提名頻率預測最佳影片
問題描述 給定多個獎項的提名名單,每個獎項有若干提名影片。規則: 1. 所有出現的影片都有機會 2. 提名次數最多的影片獲獎 3. 平票時選名單中最早出現的
HDU 3006 The Number of set:狀態壓縮DP計算可組合集合數
問題描述 給定n個集合(n≤100),元素範圍[1,m](m≤14)。每個集合不可拆分,只能整體選或不選。問能組成多少種不同的新集合(包含空集和原集合)。 狀
HDU 1069:長方體堆疊——最長遞減子序列變體
問題重述 給定n種長方體(長寬高),每種無限個。搭建塔要求:上層長方體長和寬均嚴格小於下層。長方體可旋轉(即長寬可交換)。求最大塔高。 關鍵轉換 每種長方體產
WUST 1299 結點選擇:樹形DP求最大權獨立集
問題描述 給定一棵n個節點的樹,每個節點有正整數權值。選擇節點集合,要求任意兩選中節點不相鄰,求最大權值和。n≤100,000,權值≤1000。 樹形DP狀態
HDU 4183 Pahom on Water:網絡流解決往返不重複點問題
問題描述 給定若干圓形區域,每個區域有一個值(d)。從起點(d=400.0)到終點(d=789.0)需走相交的圓,且值必須遞增;返回時值必須遞減。每個區域只能訪
NYOJ 654:0/1背包問題優化解法——ltl的魔獸升級之路
問題背景 ltl熱愛玩魔獸爭霸,為了不拖團隊後腿,他需要在多個地點刷怪升級。每個地點都需要購買補給和道具(花費ci),刷完可獲得經驗值vi。ltl擁有固定金額M
NOIP提高組 1999-2000 經典題目解析與代碼實現
前言 在鑽研進階演算法之前,夯實基礎至關重要。本文整理了 NOIP(全國青少年信息學奧林匹克聯賽)提高組 1999 年與 2000 年的經典題目,包含詳細的題目
HDU 1011 Starship Troopers:樹形背包 DP 經典題解
問題描述 一棵 n 節點樹,每節點有 value(價值)和 weight(重量,即所需士兵數)。選擇父節點才能選擇子節點。背包容量 m,求最大總價值。m=0 時
HDU 2176 多堆取石子遊戲:Nim 博弈經典應用
問題描述 m 堆石子,每堆 n[i] 個。兩人輪流從任意一堆取走任意多(≥1)石子,取走最後一顆者勝。給定初始狀態,判斷先手勝負。 Nim 博弈核心定理 先手
LeetCode 120 三角形最小路徑和:O(n) 空間自底向上 DP
問題描述 給定三角形數組 triangle,從頂部到底部,每步只能移動到下一行相鄰節點。求路徑和最小值。要求空間 O(n),n 為行數。 狀態定義與轉移 dp
C++ sizeof 陷阱:表達式不求值特性導致的隱性 Bug
現象複現 int a = 10, b = 20; cout << sizeof(a += b) << endl; // 輸出 4 (int 大小) cout