C++11 新增實用算法詳解:all_of、any_of、none_of 等
C++11 標準庫新增的便利算法概覽 C++11 標準帶來了許多現代化特性,其中 <algorithm> 頭文件新增的判斷類、查找類、複製類與數值生
C++ 語言體系設計哲學隨想:靜態類型系統的本質與操作語義
C++ 語言體系設計哲學隨想 對於靜態類型語言,其核心目標在於恰當操作資料以獲得預期值。具體需: 定義資料類型:資料是整數、浮點數、字元等,其值域範圍為何。
C++ 語言體系設計哲學隨想:靜態類型、數據與操作的本質統一
靜態類型語言的核心目標 恰當操作數據,得到期望值。需要: 定義數據類型:數據是什麼(int/float/char/自定義),值範圍 定義操作含義:操作嚴格依賴
TopCoder SRM 623 解題報告:三道題完整分析與代碼
250 分:RunningAroundPark 題意:環形跑道 n 棵樹,Alice 記錄經過的樹編號序列。求最少跑圈數。 解法:序列中相鄰非遞增(d[i] <
UVA 11806 Cheerleaders:容斥原理 + 狀態壓縮計算合法放石子方案數
題目大意 m×n 網格放 k 個相同石子,每格至多 1 個,所有石子放完。要求:第一行、最後一行、第一列、最後一列都至少有 1 個石子。求方案數模 100000
UVA 11774 Doom's Day:3^n×3^m 網格行列轉置週期規律
題目大意 3^n × 3^m 網格,初始按行優先填 1..3^(n+m)。每天操作:按行優先讀出,按列優先寫入。求多少天回到初始狀態(世界末日)。 規律發現
Codeforces 52C Circular RMQ:線段樹區間加/區間最小值
題目大意 環形數組,支持兩種操作: inc l r v:區間 [l,r] 加 v(環形,r 表示 [l,n-1]∪[0,r]) rmq l r:查詢區間 [l
BZOJ 2241 打地鼠:線性篩 + 二階差分 O(n^3) 驗證構造
題目大意 m×n 洞穴矩陣,每洞有若干地鼠。選 r×c 錘子擊打,每次擊打範圍內所有洞必須有地鼠,每洞每次減 1。求最小擊打次數(即最大可行錘子面積)。 關鍵
UVA 11388 GCD LCM:最小 a 使 gcd(a,b)=G, lcm(a,b)=L
題目大意 給定 G、L,求正整數 a、b 使 gcd(a,b)=G、lcm(a,b)=L,且 a 最小。無解輸出 -1。 核心結論 當 a 最小時,a = G
UVA 10601 Cubes:波利亞計數求染色立方體棱本質不同方案數
題目大意 12 條棱,每條有指定顏色(1~6)。用這 12 條棱組裝立方體,旋轉相同視為一種。求本質不同組裝數。 波利亞計數於棱集合 立方體旋轉群 24 元素
UVA 11889 Benefit:最小 B 使 lcm(A,B)=C,數論枚舉解法
題目大意 給定 A、C,求最小正整數 B 使 lcm(A, B) = C。無解輸出 NO SOLUTION。 數學轉化 利用 lcm(A,B) * gcd(A
POJ 2236 Wireless Network:並查集動態連通性維護
題目大意 N (≤1001) 台電腦,坐標已知,通訊距離 ≤ d。操作兩類: O p:修復電腦 p(激活) S p q:查詢 p、q 能否通訊(直接或間接)
POJ 2570 Fiber Network:Floyd 算法求公司可達性,位掩碼優化
題目大意 有向圖,邊屬於某些公司(小寫字母標識,共 ≤26 家)。查詢:從 A 到 B,哪些公司自有線路可達?輸出公司字母集合或 -。 核心技巧:位掩碼 +
LeetCode Edit Distance:編輯距離動態規劃 O(mn) 完整解析
題目大意 給定兩字符串 word1、word2,求將前者轉換為後者的最小操作數。允許操作: 插入一字符 刪除一字符 替換一字符 每操作代價為 1。 動態規
UVA 10733 The Colored Cubes:波利亞計數定理求染色立方體本質不同方案數
題目大意 用 n 種顏色給立方體 6 個面染色,每面單一顏色。兩個染色方案若可通過旋轉重合視為相同。求本質不同方案數。 波利亞計數定理應用 立方體旋轉群有 2
LA 6459 Infinite Go:無限棋盤圍棋模擬,BFS 判氣提子
題目大意 無限大棋盤(行列 1..∞),黑白雙方輪流落子(黑先)。規則: 同色上下左右相鄰形成棋群 棋群的「氣」= 相鄰空點數 無氣棋群被提走 落子後若自身棋
UVA 10588 Queuing at the Doctors:優先隊列模擬醫院排隊系統
題目大意 n 個病人、m 個醫生辦公室。每個病人有到達時間 t、需依序訪問 k 個辦公室。規則: 到達時間 t 時出現在第一個辦公室隊列 同一時刻同辦公室按編
UVA 10534 Wavio Sequence:O(n log n) LIS 求最長波谷子序列
題目大意 給定長度 n (≤10000) 序列,求最長「波谷子序列」長度:先嚴格遞增後嚴格遞減,峰值算在兩邊。即找 i 使 LIS[1..i] 和 LDS[i.