Ŀ¼ ɨһɨ Ô´ÂëÏÂÔØ µÚ1Õ¸ÅÂÛ 1.1Ëã·¨¸ÅÊö 1.1.1ʲôÊÇËã·¨ 1.1.2Ëã·¨ÃèÊö 1.1.3Ëã·¨ºÍÊý¾Ý½á¹¹ 1.1.4Ëã·¨Éè¼ÆµÄ»ù±¾²½Öè 1.2Ëã·¨·ÖÎö 1.2.1Ëã·¨µÄʱ¼ä¸´ÔÓ¶È·ÖÎö 1.2.2Ëã·¨µÄ¿Õ¼ä¸´ÔÓ¶È·ÖÎö 1.3Á·Ï°Ìâ 1.3.1µ¥ÏîÑ¡ÔñÌâ 1.3.2ÎÊ´ðÌâ 1.3.3Ëã·¨Éè¼ÆÌâ µÚ2Õ³£ÓÃÊý¾Ý½á¹¹¼°ÆäÓ¦Óà 2.1ÏßÐÔ±í 2.1.1ʲôÊÇÏßÐÔ±í 2.1.2vectorÏòÁ¿ÈÝÆ÷ 2.1.3STLͨÓÃËã·¨ 2.1.4listÁ´±íÈÝÆ÷ 2.2×Ö·û´® 2.2.1ʲôÊÇ×Ö·û´® 2.2.2string×Ö·û´®ÈÝÆ÷ 2.3Õ»¡¢¶ÓÁкÍË«¶Ë¶ÓÁÐ 2.3.1ʲôÊÇÕ»¡¢¶ÓÁкÍË«¶Ë ¶ÓÁÐ 2.3.2dequeË«¶Ë¶ÓÁÐÈÝÆ÷ 2.3.3queue¶ÓÁÐÈÝÆ÷ 2.3.4stackÕ»ÈÝÆ÷ 2.4¶þ²æÊ÷ºÍÓÅÏȶÓÁÐ 2.4.1¶þ²æÊ÷ 2.4.2ÓÅÏȶÓÁÐ 2.4.3priority_queueÓÅÏȶÓÁÐ ÈÝÆ÷ 2.5Ê÷ºÍ²¢²é¼¯ 2.5.1Ê÷ 2.5.2²¢²é¼¯ 2.6ͼ 2.6.1ͼ»ù´¡ 2.6.2Éú³ÉÊ÷ºÍ×îСÉú³ÉÊ÷ 2.6.3×î¶Ì·¾¶ 2.6.4ÍØÆËÅÅÐò 2.7¶þ²æÅÅÐòÊ÷ºÍƽºâ¶þ²æÊ÷ 2.7.1¶þ²æÅÅÐòÊ÷ 2.7.2ƽºâ¶þ²æÊ÷ 2.7.3¼¯ºÏÈÝÆ÷set/multiset 2.7.4Ó³ÉäÈÝÆ÷map/multimap 2.8¹þÏ£±í 2.8.1ʲôÊǹþÏ£±í 2.8.2¹þÏ£¼¯ºÏÈÝÆ÷unordered_set 2.8.3¹þÏ£Ó³ÉäÈÝÆ÷unordered_map 2.9Éè¼ÆºÃµÄÊý¾Ý½á¹¹ 2.10Á·Ï°Ìâ 2.10.1µ¥ÏîÑ¡ÔñÌâ 2.10.2ÎÊ´ðÌâ 2.10.3Ëã·¨Éè¼ÆÌâ 2.11ÉÏ»úʵÑéÌâ 2.11.1¸ßЧµØ²åÈ롢ɾ³ýºÍ ²éÕÒ 2.11.2Ò»ÖÖÌØÊâµÄ¶ÓÁÐ 2.11.3·½¿é²Ù×÷ 2.12ÔÚÏß±à³ÌÌâ µÚ3Õ»ù±¾Ëã·¨Éè¼Æ·½·¨ 3.1Çî¾Ù·¨ 3.1.1Çî¾Ù·¨¸ÅÊö 3.1.2×î´óÁ¬Ðø×ÓÐòÁÐºÍ 3.1.3×Ö·û´®Æ¥Åä 3.1.4ʵս¡ª¡ª²éÕÒµ¥´Ê (POJ1501) 3.2¹éÄÉ·¨ 3.2.1¹éÄÉ·¨¸ÅÊö 3.2.2Ö±½Ó²åÈëÅÅÐò 3.2.3Â¥ÌÝÎÊÌâ 3.2.4ºï×ÓÕªÌÒ×ÓÎÊÌâ 3.2.5ʵս¡ª¡ª¹ÇÅÆÆÌ·½¸ñ (HDU2046) 3.3µü´ú·¨ 3.3.1µü´ú·¨¸ÅÊö 3.3.2¼òµ¥Ñ¡ÔñÅÅÐò 3.3.3Çó¶àÊýÔªËØ 3.3.4ÇóÃݼ¯ 3.3.5ʵս¡ª¡ª×Ó¼¯(LeetCode78) 3.4µÝ¹é·¨ 3.4.1µÝ¹é·¨¸ÅÊö 3.4.2ðÅÝÅÅÐò 3.4.3ÇóÈ«ÅÅÁÐ 3.4.4ʵս¡ª¡ªÕ¹¿ª×Ö·û´® (HDU1274) 3.5µÝÍÆÊ½¼ÆËã 3.5.1Ö±½ÓÕ¹¿ª·¨ 3.5.2µÝ¹éÊ÷·½·¨ 3.5.3Ö÷·½·¨ 3.6Á·Ï°Ìâ 3.6.1µ¥ÏîÑ¡ÔñÌâ 3.6.2ÎÊ´ðÌâ 3.6.3Ëã·¨Éè¼ÆÌâ 3.7ÉÏ»úʵÑéÌâ 3.8ÔÚÏß±à³ÌÌâ µÚ4Õ·ÖÖη¨ 4.1·ÖÖη¨¸ÅÊö 4.1.1ʲôÊÇ·ÖÖη¨ 4.1.2·ÖÖη¨¿ò¼Ü 4.2Çó½âÅÅÐòÎÊÌâ 4.2.1¿ìËÙÅÅÐò 4.2.2²éÕÒÒ»¸öÐòÁÐÖеÚkСµÄ ÔªËØ 4.2.3¹é²¢ÅÅÐò 4.2.4ʵս¡ª¡ªÇóÄæÐòÊý (POJ2299) 4.3Çó½â²éÕÒÎÊÌâ 4.3.1²éÕÒ×î´óºÍ´Î´óÔªËØ 4.3.2¶þ·Ö²éÕÒ 4.3.3²éÕÒÁ½¸öµÈ³¤ÓÐÐòÐòÁÐµÄ ÖÐλÊý 4.3.4²éÕÒ¼Ù±ÒÎÊÌâ 4.3.5*ʵս¡ª¡ªÓÐÐòÊý×éÖÐµÄ µ¥Ò»ÔªËØ(LeetCode540) 4.4Çó½â×éºÏÎÊÌâ 4.4.1×î´óÁ¬Ðø×ÓÐòÁÐºÍ 4.4.2ÆåÅ̸²¸ÇÎÊÌâ 4.4.3Ñ­»·Èճ̰²ÅÅ ÎÊÌâ 4.4.4Çó×î½üµã¶Ô¾àÀë 4.4.5ʵս¡ª¡ªÇóÁ½×éµãÖ®¼äµÄ ×î½üµã¶Ô(POJ3714) 4.5ÇóxnºÍAnÎÊÌâ 4.5.1ÇóxnÎÊÌâ 4.5.2ÇóAnÎÊÌâ 4.5.3ʵս¡ª¡ªÓþØÕó¿ìËÙÃÝÇó FibonacciÊýÁÐ(POJ3070) 4.6Á·Ï°Ìâ 4.6.1µ¥ÏîÑ¡ÔñÌâ 4.6.2ÎÊ´ðÌâ 4.6.3Ëã·¨Éè¼ÆÌâ 4.7ÉÏ»úʵÑéÌâ 4.8ÔÚÏß±à³ÌÌâ µÚ5Õ»ØËÝ·¨ 5.1»ØËÝ·¨¸ÅÊö 5.1.1ÎÊÌâµÄ½â¿Õ¼ä 5.1.2ʲôÊÇ»ØËÝ·¨ 5.1.3»ØËÝ·¨Ëã·¨µÄ¿ò¼Ü 5.1.4»ØËÝ·¨Ëã·¨µÄʱ¼ä ·ÖÎö 5.2»ùÓÚ×Ó¼¯Ê÷¿ò¼ÜµÄÎÊÌâÇó½â 5.2.1×Ó¼¯ºÍÎÊÌâ 5.2.2¼òµ¥×°ÔØÎÊÌâ 5.2.30/1±³°üÎÊÌâ 5.2.4n»ÊºóÎÊÌâ 5.2.5ÈÎÎñ·ÖÅäÎÊÌâ 5.2.6³öÕ»ÐòÁÐ 5.2.7ͼµÄm×ÅÉ« 5.2.8ʵս¡ª¡ª¾ÈÔ®ÎÊÌâ (HDU1242) 5.3»ùÓÚÅÅÁÐÊ÷¿ò¼ÜµÄÎÊÌâÇó½â 5.3.1ÈÎÎñ·ÖÅäÎÊÌâ 5.3.2»õÀɵ£ÎÊÌâ 5.3.3ʵս¡ª¡ªº¬Öظ´ÔªËصÄÈ« ÅÅÁТò(LeetCode47) 5.4Á·Ï°Ìâ 5.4.1µ¥ÏîÑ¡ÔñÌâ 5.4.2ÎÊ´ðÌâ 5.4.3Ëã·¨Éè¼ÆÌâ 5.5ÉÏ»úʵÑéÌâ 5.6ÔÚÏß±à³ÌÌâ µÚ6Õ·ÖÖ§Ï޽編 6.1·ÖÖ§Ï޽編¸ÅÊö 6.1.1ʲôÊÇ·ÖÖ§Ï޽編 6.1.2·ÖÖ§Ï޽編µÄÉè¼ÆÒªµã 6.1.3·ÖÖ§Ï޽編µÄʱ¼ä·ÖÎö 6.2¹ã¶ÈÓÅÏÈËÑË÷ 6.2.1¹ã¶ÈÓÅÏÈËÑË÷¸ÅÊö 6.2.2ʵս¡ª¡ª×¥Å£ÎÊÌâ (POJ3278) 6.2.3ʵս¡ª¡ªÍÆÏä×Ó (HDU1254) 6.2.4ʵս¡ª¡ª¸¯ÀõÄéÙ×Ó (LeetCode994) 6.3¶ÓÁÐʽ·ÖÖ§Ï޽編 6.3.1¶ÓÁÐʽ·ÖÖ§Ï޽編¸ÅÊö 6.3.2ͼµÄµ¥Ô´×î¶Ì·¾¶ 6.3.30/1±³°üÎÊÌâ 6.3.4ʵս¡ª¡ªÍø¸ñÖеÄ×î¶Ì ·¾¶(LeetCode1293) 6.4ÓÅÏȶÓÁÐʽ·ÖÖ§Ï޽編 6.4.1ÓÅÏȶÓÁÐʽ·ÖÖ§Ï޽編 ¸ÅÊö 6.4.2ͼµÄµ¥Ô´×î¶Ì·¾¶ 6.4.3ʵս¡ª¡ª×îСÌåÁ¦ÏûºÄ· ¾¶(LeetCode1631) 6.4.40/1±³°üÎÊÌâ 6.4.5ÈÎÎñ·ÖÅäÎÊÌâ 6.4.6»õÀɵ£ÎÊÌâ 6.5Á·Ï°Ìâ 6.5.1µ¥ÏîÑ¡ÔñÌâ 6.5.2ÎÊ´ðÌâ 6.5.3Ëã·¨Éè¼ÆÌâ 6.6ÉÏ»úʵÑéÌâ 6.7ÔÚÏß±à³ÌÌâ µÚ7ÕÂ̰ÐÄ·¨ 7.1̰ÐÄ·¨¸ÅÊö 7.1.1ʲôÊÇ̰ÐÄ·¨ 7.1.2̰ÐÄ·¨Çó½âÎÊÌâ¾ßÓÐµÄ ÐÔÖÊ 7.1.3̰ÐÄ·¨µÄÒ»°ãÇó½â¹ý³Ì 7.2Çó½â×éºÏÎÊÌâ 7.2.1»î¶¯°²ÅÅÎÊÌâ¢ñ 7.2.2ʵս¡ª¡ª¼Ó¹¤Ä¾¹÷ (POJ1065) 7.2.3Çó½â±³°üÎÊÌâ 7.3Çó½âͼÎÊÌâ 7.3.1ÓÃPrimËã·¨¹¹Ôì×îСÉú ³ÉÊ÷ 7.3.2ÓÃKruskalËã·¨¹¹Ôì×îС Éú³ÉÊ÷ 7.3.3ʵս¡ª¡ª½¨ÉèµÀ· (POJ3625) 7.3.4ÓÃDijkstraËã·¨Çóµ¥Ô´ ×î¶Ì·¾¶ 7.3.5ʵս¡ª¡ª×î¶Ì·¾¶ÎÊÌâ (HDU3790) 7.4Çó½âµ÷¶ÈÎÊÌâ 7.4.1²»´ø³Í·£µÄµ÷¶ÈÎÊÌâ 7.4.2´ø³Í·£µÄµ÷¶ÈÎÊÌâ 7.4.3ʵս¡ª¡ª¸Ï×÷Òµ (HDU1789) 7.5¹þ·òÂü±àÂë 7.5.1¹þ·òÂüÊ÷ºÍ¹þ·òÂü±àÂë 7.5.2ʵս¡ª¡ª×îºóÒ»¿éʯͷµÄ ÖØÁ¿(LeetCode1046) 7.6Á·Ï°Ìâ 7.6.1µ¥ÏîÑ¡ÔñÌâ 7.6.2ÎÊ´ðÌâ 7.6.3Ëã·¨Éè¼ÆÌâ 7.7ÉÏ»úʵÑéÌâ 7.8ÔÚÏß±à³ÌÌâ µÚ8Õ¶¯Ì¬¹æ»® 8.1¶¯Ì¬¹æ»®¸ÅÊö 8.1.1´ÓÒ»¸ö¼òµ¥Ê¾ÀýÈëÃÅ 8.1.2¶¯Ì¬¹æ»®µÄÔ­Àí 8.1.3¶¯Ì¬¹æ»®Çó½âÎÊÌâµÄÐÔÖÊ ºÍ²½Öè 8.1.4¶¯Ì¬¹æ»®ÓëÆäËû·½·¨µÄ ±È½Ï 8.2һά¶¯Ì¬¹æ»® 8.2.1×î´óÁ¬Ðø×ÓÐòÁÐºÍ 8.2.2ʵս¡ª¡ª×î´ó×ÓÐòÁÐºÍ (LeetCode53) 8.2.3×µÝÔö×ÓÐòÁÐ 8.2.4*»î¶¯°²ÅÅÎÊÌâ¢ò 8.3¶þά¶¯Ì¬¹æ»® 8.3.1Èý½ÇÐÎ×îС·¾¶ºÍ 8.3.2ʵս¡ª¡ªÏ½µÂ·¾¶×îС ºÍ(LeetCode931) 8.4Èýά¶¯Ì¬¹æ»® 8.4.1ÓÃFloydËã·¨Çó¶àÔ´×î¶Ì ·¾¶ 8.4.2*Ë«»úµ÷¶ÈÎÊÌâ 8.5×Ö·û´®¶¯Ì¬¹æ»® 8.5.1×¹«¹²×ÓÐòÁÐ 8.5.2±à¼­¾àÀë 8.6±³°ü¶¯Ì¬¹æ»® 8.6.10/1±³°üÎÊÌâ 8.6.2ÍêÈ«±³°üÎÊÌâ 8.6.3ʵս¡ª¡ªÁãÇ®¶Ò»» (LeetCode322) 8.6.4*¶àÖØ±³°üÎÊÌâ 8.7Ê÷Ðζ¯Ì¬¹æ»® 8.7.1ʵս¡ª¡ªÇì×£Íí»á (HDU1520) 8.7.2ʵս¡ª¡ªÕÒ¿ó (LeetCode337) 8.8Çø¼ä¶¯Ì¬¹æ»® 8.8.1ʵս¡ª¡ª´ÁÆøÇò (LeetCode312) 8.8.2ʵս¡ª¡ª×»ØÎÄ ×Ó´®(LeetCode5) 8.9Á·Ï°Ìâ 8.9.1µ¥ÏîÑ¡ÔñÌâ 8.9.2ÎÊ´ðÌâ 8.9.3Ëã·¨Éè¼ÆÌâ 8.10ÉÏ»úʵÑéÌâ 8.11ÔÚÏß±à³ÌÌâ µÚ9ÕÂNPÍêÈ«ÎÊÌâ 9.1PÀàºÍNPÀà 9.1.1Ò×½âÎÊÌâºÍÄѽâÎÊÌâ 9.1.2Åж¨ÎÊÌâ 9.1.3PÀà 9.1.4NPÀà 9.2¶àÏîʽʱ¼ä±ä»»ºÍNPÍêÈ« ÎÊÌâ 9.2.1¶àÏîʽʱ¼ä±ä»» 9.2.2NPÍêÈ«ÐÔ¼°ÆäÐÔÖÊ 9.2.3µÚÒ»¸öNPÍêÈ«ÎÊÌâ 9.2.4ÆäËûNPÍêÈ«ÎÊÌâ 9.3Á·Ï°Ìâ 9.3.1µ¥ÏîÑ¡ÔñÌâ 9.3.2ÎÊ´ðÌ⠲ο¼ÎÄÏ×