HDU 1398:平方數拆分的生成函數動態規劃
問題描述 給定整數 n ≤ 300,求將 n 拆分為平方數之和的方案數(順序不計,即分區數)。輸入多組 n,以 0 結束。 解法:生成函數 / 完全背包 硬幣
POJ 3130:半平面交判斷多邊形核是否存在
問題描述 給定 n ≤ 100 個點按順序構成簡單多邊形。判斷多邊形是否有「核」(即存在一點,能看見多邊形所有點,等價於所有內角平半線交非空)。輸出 1(有核)
POJ 3294 Life Forms:後綴數組求多字符串最長公共子串
問題描述 最多 100 個字符串,總長 ≤ 200000。求出現於至少一半以上字符串中的最長子串(長度最大,若多個按字典序輸出所有)。 解法:廣義後綴數組 +
POJ 3264 Balanced Lineup:線段樹區間最值查詢
問題描述 N ≤ 50000 頭牛,高度 h_i。Q ≤ 50000 次查詢,每次給區間 [l, r],求區間內最大高度與最小高度之差。 解法:線段樹維護區間
HDU 4662 MU Puzzle:字符串變換規則與 BFS 預計算
問題描述 初始字符串 MI。允許操作: Mx → Mxx(複製 M 後內容)。 III → U。 UU → ε(刪除連續兩個 U)。 判斷給定目
POJ 2886:樹狀數組 + 二分查找模擬约瑟夫斯變體
問題描述 n 個人圍圈,編號 1~n。第 k 個人先出局。之後每輪:若上一出局者的 0,順時針數 a[x] 個未出局者,該人出局;若 a[x] < 0,逆時針
POJ 2186 Popular Cows:縮點 + 入度為 0 的強連通分量統計
問題描述 有向圖 n ≤ 10000,m ≤ 50000。若牛 A 認為牛 B 受歡迎,有邊 A→B。若一頭牛被所有牛(直接或間接)認為受歡迎,則它真正受歡迎。
HDU 4696:反狀態壓縮 + 動態規劃求期望值
問題描述 給定 n 個數 A_0...A_n 和操作符 op_1...op_n(&, |, ^)。每個數以概率 p_i 參與運算(初始 A_0 必參與)。按位運
UVA 11090 Going in Cycle!!:二分答案 + SPFA 判負環求最小平均權環
問題描述 有向圖 n ≤ 50,m 條正權邊。求平均權重最小的環(平均權 = 環上邊權和 / 邊數)。輸出最小平均值,保留兩位小數;無環輸出 No cycle
POJ 2635:大整數模質數判斷與千進制高精度取模
問題描述 給定一個超長整數 K(≤ 100 位)和上限 L。檢查 K 是否有小於 L 的質因數。若有,輸出 BAD p(最小質因數);否則輸出 GOOD。 核
HDU 1711 Number Sequence:KMP 算法求子序列首次出現位置
問題描述 給定長度 a 的文本序列 T 和長度 b 的模式序列 P(a ≤ 10^6, b ≤ 10^4)。求 P 在 T 中首次出現的起始位置(1-based
HDU 1385 Minimum Transport Cost:Floyd 算法求最短路徑與字典序最小路徑
問題描述 給定 n ≤ 100 個城市,n×n 代價矩陣(-1 表示無直達),每個城市有過路費 b[i]。求任意兩城市間最小總代價(路徑邊權和 + 中轉城市過路
C/C++ 源碼編譯鏈接常見錯誤排查筆記
前言 移植開源項目時,常遇到編譯/鏈接錯誤。記錄典型案例,積累排查經驗。 案例一:符號重複定義 link error #10056: symbol redef
UVa 10397 Connect the Campus:最小生成樹 Prim 算法變體
問題描述 N ≤ 750 個建築,坐標已知。已有 M 條電纜連接部分建築(代價 0)。求連通所有建築的最小新增電纜總長度(歐幾里得距離)。 解法:Prim 算
UVa 10387 Billiard:彈球角度與速度計算
問題描述 長方形桌邊長 a(水平)、b(垂直)。球從中心射出,經 s 秒後回到起點,期間撞擊垂直邊 m 次、水平邊 n 次。求發射角 A(度,0~90)及初速度
HDU 4339 Query:動態字符串最長公共前綴查詢與修改
問題描述 給定兩個等長字符串 s1, s2(長度 ≤ 10^6),支持兩種操作(Q ≤ 10^5): 修改:1 a i c 將第 a 個字符串的第 i 位
HDU 4655:排列塗色最大化期望值與模運算技巧
問題大意 給定 n 個數 a_1...a_n,將其排列並塗色(紅/藍),使得某期望值表達式最大。最終需輸出最大值模 1e9+7。n ≤ 10^6,多測試用例。
HDU 1085:硬幣面額 1,2,5 求最小不可湊出金額
問題描述 給定面額為 1、2、5 的硬幣,各自數量 n1, n2, n3(≤ 1000)。求無法湊出的最小正整數金額。 解法:生成函數 / 多重背包動態規劃