competitive_programming
1.0.0
這些是我對一些競爭性編程問題和各種練習的C ++解決方案。使用不同的算法和數據結構解決了類似的問題 - 有時使用標準庫提供的問題,有時使用我自己的庫。
由於EX-UVA在線法官限制,大多數解決方案都在C+11中。成功提交後的一些人被修改為使用C ++ 14/17功能。
問題來源
| ID | 標題 | 類別 |
|---|---|---|
| 001 08 | 最大總和 | 線性搜索,最大總和陣列,Kadane的算法 |
| 001 09 | 空粉剋星 | 凸船體 |
| 001 12 | 樹總和 | 二進制樹 |
| 001 20 | 一堆flapjacks | 堆棧,煎餅分類 |
| 001 22 | 樹上的樹木 | 二進制樹,水平訂購遍歷,廣度優先搜索 |
| 001 40 | 帶寬 | 排列,回溯 |
| 001 47 | 美元 | 動態編程,硬幣更改 |
| 001 64 | 字符串計算機 | 動態編程,編輯距離 |
| 002 00 | 稀有訂單 | 拓撲排序,深度優先搜索 |
| 002 16 | 排隊 | 動態編程,漢密爾頓路徑,位面具 |
| 002 18 | 消除飛蛾 | 凸船體 |
| 002 22 | 預算旅行 | |
| 002 40 | 可變radix huffman編碼 | 霍夫曼樹,深度優先搜索 |
| 002 59 | 軟件分配 | |
| 002 64 | 指望康托爾 | |
| 002 70 | 排隊 | |
| 002 94 | 除數 | |
| 003 34 | 確定並發事件 | |
| 003 48 | 最佳陣列多。順序 | 動態編程,矩陣鏈乘法 |
| 003 50 | 偽隨機數 | |
| 003 53 | 討厭的回文 | 多項式滾動哈希,字符串處理 |
| 003 57 | 計算方式 | |
| 003 61 | 警察和強盜 | |
| 003 72 | whatfix符號 | 二進制樹,前/in-/in-/tost-sord遍歷轉換 |
| 003 74 | 大國 | 二進制指數,模塊化凸 |
| 004 29 | 單詞轉換 | |
| 004 37 | 巴比倫塔 | |
| 004 39 | 騎士移動 | 廣度優先搜索 |
| 004 54 | Anagrams | |
| 004 55 | 週期性字符串 | 字符串,Knuth -Morris -Pratt算法 |
| 004 59 | 圖形連接 | 分離/聯合信息,圖形連接的組件 |
| 004 69 | 佛羅里達的濕地 | |
| 004 81 | 發生了什麼 | 最長增加的子序列,二進制搜索 |
| 004 82 | 排列數組 | |
| 005 01 | 黑匣子 | AVL樹,二進制樹迭代器 |
| 005 07 | 吉爾再次騎車 | 線性搜索,最大總和陣列,Kadane的算法 |
| 005 16 | 主要土地 | |
| 005 26 | 字符串距離 | 動態編程,編輯距離 |
| 005 36 | 樹恢復 | 二進制樹,前/in-/in-/tost-sord遍歷轉換 |
| 005 40 | 隊列隊 | |
| 005 43 | 戈德巴赫的猜想 | 素數 |
| 005 48 | 樹 | |
| 005 51 | 嵌套支架 | |
| 005 58 | 蟲洞 | |
| 005 62 | 分割硬幣 | |
| 005 68 | 只是事實 | 階乘,復發關係 |
| 005 74 | 總結一下 | |
| 005 82 | 隨機有線神經網 | 深度優先的搜索,圖形雙連接組件 |
| 005 83 | 主要因素 | |
| 006 12 | DNA排序 | 合併排序,計數計數 |
| 006 23 | 500! | 階乘,大整數 |
| 006 30 | Anagrams | |
| 006 39 | 不要訓練 | |
| 006 74 | 硬幣的變化 | |
| 006 79 | 掉球 | |
| 006 84 | 積分決定因素 | 高斯消除,歐幾里得算法 |
| 006 86 | 戈德巴赫猜想II | 素數 |
| 007 01 | 考古學家的困境 | 對數 |
| 007 14 | 複製書 | 線性分區,隱性二進制搜索 |
| 007 19 | 玻璃珠 | 詞彙最少的旋轉,杜萬的算法 |
| 007 27 | 方程 | 表達解析,分流院子算法 |
| 007 29 | 錘距離問題 | 回溯 |
| 007 50 | 八個皇后國際象棋問題 | 回溯 |
| 007 87 | 最大子序列產品 | 最大產品子陣列,大整數 |
| 007 93 | 網絡連接 | |
| 007 96 | 關鍵鏈接 | 深度優先搜索,圖形橋 |
| 008 20 | 互聯網帶寬 | |
| 008 33 | 水掉落 | |
| 008 68 | 數值迷宮 | 回溯 |
| 008 72 | 訂購 | |
| 009 08 | 重新連接計算機站點 | |
| 009 29 | 數字迷宮 | |
| 009 42 | 循環數字 | 有理數,小數分數,哈希表 |
| 009 90 | 潛入黃金 | |
| 009 91 | 安全致敬 | 組合,復發關係,加泰羅尼亞 |
| 011 21 | 子序列 | 滑動窗口 |
| 011 75 | 女士的選擇 | 穩定的匹配問題,大風射擊算法 |
| 012 10 | 連續數字的總和 | 素數 |
| 012 52 | 二十個問題 | |
| 012 60 | 銷售量 | |
| 012 93 | 符號推導 | 表達解析,分流碼算法,符號評估。 |
| 013 72 | 日誌跳躍 | |
| 016 50 | 數字字符串 | 組合學,復發關係 |
| 100 03 | 切棒 | |
| 100 04 | 雙色 | |
| 100 18 | 反向並添加 | 整數,196-算法 |
| 100 61 | 多少個零和數字? | 階乘數量,分解,對數 |
| 100 79 | 披薩切割 | 組合,中央多邊形數字 |
| 101 07 | 中位數是什麼 | 優先隊列,在線算法 |
| 101 71 | 會議教授。米格爾 | |
| 101 93 | 你最需要的是愛 | 最偉大的常見除數 |
| 102 20 | 我喜歡大數字! | 階乘,大整數 |
| 102 23 | 多少個節點 | 組合,復發關係,加泰羅尼亞 |
| 102 29 | 模塊化斐波那契 | 斐波那契數,模塊化指數 |
| 102 45 | 最接近的一對問題 | 2D最接近點 |
| 102 68 | 498-Bis | 霍納的統治 |
| 102 82 | babelfish | 哈希表 |
| 102 98 | 動力弦 | |
| 103 05 | 訂購任務 | |
| 103 11 | 戈德巴赫和歐拉 | 素數 |
| 103 19 | 曼哈頓 | |
| 103 27 | 翻轉排序 | AVL樹 |
| 103 41 | 解決它 | 數字,牛頓的方法 |
| 103 64 | 正方形 | 回溯,位面具 |
| 103 82 | 澆水 | 貪婪,間隔覆蓋 |
| 104 28 | 根 | 根發現,二等法 |
| 104 54 | trexpression | 表達解析,分流院子算法,加泰羅尼亞 |
| 104 96 | 收集蜂鳴器 | |
| 105 33 | 數字素數 | |
| 105 67 | 幫助填補貝茨 | |
| 105 70 | 與外星人會面 | 置換,掉期計數,週期計數 |
| 105 76 | Y2K會計錯誤 | |
| 105 86 | 多項式殘留 | |
| 106 00 | ACM比賽和停電 | |
| 106 04 | 化學反應 | |
| 106 51 | 卵石紙牌 | |
| 106 55 | 沉思!代數 | 復發關係,模塊化指數 |
| 106 64 | 行李 | |
| 106 84 | 大獎 | |
| 106 99 | 計算因素 | 素數,素數分解 |
| 107 23 | 半機械人基因 | |
| 107 38 | Riemann vs Mertens | 素數,莫比烏斯功能,默滕斯功能 |
| 108 01 | 舉起 | |
| 108 10 | Ultra QuickSort | 合併/插入排序,反轉計數 |
| 108 55 | 旋轉的正方形 | 基質旋轉,基質換位 |
| 108 70 | 復發 | |
| 109 20 | 螺旋水龍頭 | 分析表達 |
| 109 31 | 平價 | |
| 109 34 | 掉落水氣球 | |
| 109 35 | 扔掉卡片 | 隊列,單連鎖列表 |
| 109 38 | 跳蚤馬戲團 | |
| 109 54 | 添加全部 | 堆 |
| 109 57 | SU Doku檢查器 | 回溯,位面具 |
| 109 94 | 簡單的添加 | 分析表達 |
| 110 57 | 確切的總和 | |
| 110 60 | 飲料 | |
| 110 77 | 找到排列 | 組合,復發關係,斯特林數字 |
| 111 37 | 巧妙的食物 | |
| 111 51 | 最長的回文 | 動態編程,字符串處理 |
| 111 71 | 簡訊 | 動態編程,字符串處理,TRIE |
| 111 95 | 另一個N問題 | 回溯,位面具 |
| 112 27 | 銀彈 | |
| 112 35 | 頻繁的值 | |
| 112 36 | 雜貨店 | |
| 112 57 | 新的營銷計劃 | 多邊形,銘文圓半徑,優先隊列 |
| 112 58 | 字符串分區 | 動態編程 |
| 112 60 | 奇數總和 | 分析表達,含義。二進制搜索,模塊化算術 |
| 112 71 | 電阻的晶格 | 復發關係,漸近擴張 |
| 112 83 | 玩笨拙 | 回溯 |
| 112 97 | 人口普查 | 2D SQRT分解 |
| 113 62 | 電話列表 | Trie,前綴匹配 |
| 114 13 | 填充容器 | |
| 114 20 | 抽屜箱 | 組合學,復發關係 |
| 114 56 | 訓練 | |
| 114 61 | 平方數 | 隱式二進制搜索 |
| 114 62 | 年齡排序 | 計數排序 |
| 114 63 | 突擊隊 | |
| 114 75 | 延伸到回文 | |
| 115 17 | 確切的更改 | |
| 115 36 | 最小的子陣列 | 滑動窗口 |
| 115 72 | 獨特的雪花 | 線性搜索,哈希表 |
| 115 84 | palindromes的劃分 | |
| 116 21 | 小因素 | 對數 |
| 116 34 | 生成隨機數 | |
| 116 36 | 你好世界! | 分析表達,對數 |
| 116 58 | 最佳聯盟 | |
| 116 86 | 拿起棍子 | |
| 116 91 | 過敏測試 | |
| 117 03 | SQRT,日誌,罪 | 復發關係 |
| 117 14 | 盲目分類 | 訂單統計(最大第2) |
| 117 33 | 機場 | |
| 119 02 | 統治者 | |
| 119 91 | Rujia Liu的簡單問題? | 排序,二進制搜索 |
| 119 97 | 最小的K | |
| 120 86 | 電位計 | 芬威克樹 |
| 121 05 | 更大的更好(1) | |
| 121 05 | 更大的更好(2) | |
| 121 92 | 葡萄 | 二進制搜索 |
| 122 38 | 螞蟻殖民地 | |
| 123 47 | 二進制搜索樹 | 二進制搜索樹,預/後遍歷遍歷 |
| 124 55 | 酒吧 | 完整的搜索,回溯 |
| 124 58 | 哦,我的樹! | |
| 124 62 | 長方形 | 線性搜索,堆棧,位掩碼 |
| 124 94 | 獨特的子弦 | Lex。最小旋轉,Duvan的算法,哈希表 |
| 125 04 | 更新詞典 | 快速排序 |
| 126 40 | 最大的總和遊戲 | 線性搜索,最大總和陣列,Kadane的算法 |
| 126 97 | 最小的亞陣列長度 | 線性搜索,最大總和陣列,Kadane的算法 |
| 127 02 | 擴張 | 二進制形態,二元圖像擴張 |
| 129 11 | 子集總和 | 子集總和,完整搜索,中間會議 |
| 130 50 | 發現路徑 | 組合學,復發關係 |
| 132 82 | Cakey McCakeface(1) | 排序,線性搜索 |
| 132 82 | Cakey McCakeface(2) | 位面具,鏟斗 |
問題來源
| ID | 標題 | 類別 |
|---|---|---|
| C2 | 獲取圖像 | 分形,mandelbrot集,mpi, std::thread |
來自不同在線來源的其他問題。
| 標題 | 類別 |
|---|---|
| 陣列到二進制搜索樹 | 二進制搜索樹 |
| 帶有單位調整的數組。差異搜索 | 線性搜索 |
| 二進制排序陣列過渡點 | 二進制搜索 |
| 二元樹直徑 | 二進制樹,深度優先遍歷 |
| 二進制樹的頂視圖 | 二進制樹,廣度優先的遍歷 |
| Bitonic數組搜索 | 二進制搜索 |
| 三個陣列中的常見元素 | 線性搜索 |
| Y形鏈接列表中的連接點 | 單連鎖列表 |
| 計數Anagram子字符串 | 哈希表,滑動窗口 |
| 計算右邊較小的元素 | AVL樹 |
| 計數郵政編碼中的正方形 | 分析表達 |
| 計算三胞胎 | 線性搜索,配對總和搜索 |
| 在二進制流中的分裂性 | 模塊化算術,可劃分 |
| 平衡點 | 線性搜索 |
| 生成括號(1) | 組合,回溯 |
| 有一個總和 | 動態編程 |
| 是鏈接列表 | 單連鎖列表 |
| 是子樹(1) | 二進制樹,深度優先遍歷 |
| k-th eyter in Row-Column分類矩陣中的元素 | 堆 |
| k交換的最大數量 | 回溯 |
| 直方圖中最大的矩形 | 線性搜索,堆棧 |
| 最大廣場A布爾矩陣 | 動態編程,最大的方形符號 |
| 斐波那契的最後兩個數字 | 斐波那契數,模塊化算術,二進制啟動 |
| 列表合併 | 單連鎖列表 |
| 列表合併排序 | 單連鎖列表,合併排序 |
| 最長的不同字符底帶 | 線性搜索 |
| 最長的回文sum substring | 線性搜索 |
| 多數元素 | Boyer - Moore多數投票算法 |
| 嚴格增加數組 | 最長增加的子序列,二進制搜索 |
| 矩陣旋轉 | 基質旋轉,基質換位 |
| 排序元素之間的最大距離 | 線性搜索 |
| 字符串中的最大值 | 線性搜索,詞典比較 |
| 每個子陣列的最大(1) | 滑動窗口,平衡的二進制樹 |
| 每個子陣列的最大(1) | 滑動窗,Deque |
| 3個要素的最大產品 | 線性搜索 |
| Min-stack | 堆 |
| 排序旋轉陣列中的最小元素 | 二進制搜索 |
| 最小跳躍數(1) | 動態編程 |
| 最小跳躍數(2) | 線性搜索 |
| 幾乎分類 | 堆排序,插入排序 |
| 下一個更大的元素 | 線性搜索,堆棧 |
| 二進制距離k的節點 | 二進制樹,深度優先遍歷 |
| 網格中的路徑數 | 組合學 |
| 分區均勻和奇數節點 | 單連鎖列表 |
| 隊列作為兩個堆棧 | 隊列,堆棧 |
| 刪除重複節點 | 單連鎖列表 |
| 刪除中間節點 | 單連鎖列表 |
| 從字典恢復字母 | 拓撲排序,卡恩的算法 |
| 扭轉單連鎖列表 | 單連鎖列表 |
| 字符串中的單詞 | 線性搜索 |
| 旋轉單連接的列表 | 單連鎖列表 |
| 旋轉的陣列搜索 | 二進制搜索,線性搜索 |
| 第二大 | 訂單統計,第二大元素,二進制計數器 |
| 設置行和列如果 | 線性搜索 |
| 排列中的最小數字 | 線性搜索 |
| 大小3的分類子序列 | 線性搜索 |
| 大小4的分類子序列 | 線性搜索 |
| 平方根 | 隱式二進制搜索 |
| 帶有總和的子陣列 | 線性搜索 |
| 三路分區 | 陣列分區 |
| 給定總和的兩個元素 | 線性搜索,哈希表 |
| 無序等級的數組 | 序列,哈希表 |
| XOR鏈接列表 | 雙關聯列表 |
| 零和子陣列 | 線性搜索,哈希表 |