{"id":1831,"date":"2024-12-01T14:57:01","date_gmt":"2024-12-01T06:57:01","guid":{"rendered":"https:\/\/blog.cruciferslab.net\/?p=1831"},"modified":"2025-11-26T17:27:48","modified_gmt":"2025-11-26T09:27:48","slug":"advent-of-code-2024","status":"publish","type":"post","link":"https:\/\/blog.cruciferslab.net\/?p=1831","title":{"rendered":"Advent of Code 2024"},"content":{"rendered":"\n<p>\u4e00\u5e74\u4e00\u5ea6\u7684 Advent of Code \u53c8\u4f86\u4e86\uff0c\u61c9\u8a72\u4e0d\u9700\u8981\u591a\u8aaa\u4e86\u5427\u3002<\/p>\n\n\n\n<p>\u9019\u88e1\u5c31\u4f86\u9806\u4fbf\u66f4\u65b0\u4e00\u4e0b\u6211\u7684\u8fd1\u6cc1\u597d\u4e86\u3002\u6700\u8fd1\u5de5\u4f5c\u4e0a\u9047\u5230\u4e86\u4e00\u4e9b\u72c0\u6cc1\uff0c\u6bd4\u8f03\u4e0d\u600e\u9ebc\u6709\u5fc3\u529b\u53bb\u505a\u4e4b\u524d\u8a08\u756b\u597d\u7684\u4e8b\uff1b\u53bb\u5e74\u9019\u6642\u8aaa\u5230\u7684 AoC \u76f8\u95dc\u7684\u6771\u897f\u7684\u6536\u5c3e\u7d50\u679c\u4e00\u4e01\u534a\u9ede\u90fd\u6c92\u52d5\u9084\u662f\u5361\u5728\u90a3\u88e1\uff0c\u7136\u5f8c\u63a5\u4e0b\u4f86\u6709\u4e00\u500b\u6211\u60f3\u4e1f\u51fa\u4f86\u7684\u6771\u897f\u6703\u8981\u8d95\u5feb\u5148\u641e\u5b9a\u3002\u56e0\u6b64\u5c31\u8b8a\u6210\u4e86\u9023\u7e8c\u5169\u5e74\u7a7a\u8f49\u7684\u90e8\u843d\u683c\u2026\u2026<\/p>\n\n\n\n<p>11 \u6708\u6642\u5012\u662f\u56e0\u70ba\u9019\u6a23\u8dd1\u53bb\u505a\u4e86\u53e6\u4e00\u500b\u4eba\u7684\u7b97\u662f\u71b1\u8eab\u8cfd (?) \u7684\u7ad9\u53eb <a href=\"https:\/\/everybody.codes\" data-type=\"link\" data-id=\"https:\/\/everybody.codes\">Everybody Codes<\/a> (\u6709\u4ed6\u7684\u53c3\u8cfd\u8005\u8cbc\u53bb Advent of Code reddit \u7248\u6211\u624d\u77e5\u9053\u7684)\uff0c\u7167\u9019\u7ad9\u9577\u7684\u8a08\u756b\u597d\u50cf\u672a\u4f86\u61c9\u8a72\u90fd\u6703\u5728 11 \u6708\u6642\u51fa\u65b0\u984c\uff0c\u800c\u4eca\u5e74\u4ed6\u7684\u984c\u76ee\u96d6\u7136\u6709\u4e00\u9ede\u504f (\u6700\u5f8c\u9019\u5169\u9031\u6211\u6c92\u5f15\u5165\u6211\u7684 BFS\uff0fA* \u51fd\u5f0f\u5eab\u7684\u6b21\u6578\u597d\u50cf\u5c48\u6307\u53ef\u6578)\uff0c\u4e0d\u904e\u78ba\u5be6\u7b97\u662f\u6eff\u7528\u5fc3\u5728\u505a\u7684\u3002\u671f\u5f85\u672a\u4f86\u6709\u6c92\u6709\u66f4\u6709\u8da3\u7684\u6771\u897f\u3002<\/p>\n\n\n\n<p>\u90a3\u9ebc\u7167\u4f8b\u6587\u7ae0\u62bc 12\/1 \u767c\u51fa\uff0c\u4f46\u63a5\u4e0b\u4f86\u6bcf\u5929\u90fd\u6703\u66f4\u65b0\u7576\u5929\u7684\u984c\u76ee\u5fc3\u5f97\uff1b\u4ee5\u53ca\u4e00\u76f4\u90fd\u6709\u7684 <a href=\"https:\/\/github.com\/progheal\/adventofcode\" data-type=\"link\" data-id=\"https:\/\/github.com\/progheal\/adventofcode\">github repo \u9023\u7d50<\/a>\u3002<\/p>\n\n\n\n<!--more-->\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1. Historian Hysteria<\/h2>\n\n\n\n<p>\u661f\u671f\u65e5\u7684\u7b2c\u4e00\u5929\u611f\u89ba\u4e0d\u592a\u80fd\u641e\u592a\u5947\u602a\u7684\u6771\u897f\uff0c\u6240\u4ee5\u679c\u7136\u9084\u662f\u53ea\u80fd\u5728\u8f38\u5165\u4e0a\u641e\u4e8b\u3002\u53ea\u662f\u770b\u8d77\u4f86\u4ea4\u932f\u8f38\u5165\u9019\u7a2e\u4e8b\u9a45\u96e2 AI \u7684\u6548\u679c\u6c92\u6709\u53bb\u5e74\u7684\u5b57\u4e32\u8655\u7406\u554f\u984c\u90a3\u9ebc\u597d\uff0c\u4eca\u5e74\u597d\u50cf\u6709\u4eba 4 \u79d2 + 5 \u79d2\u4e0a\u699c\u7684\u6a23\u5b50\u2026\u2026<\/p>\n\n\n\n<p>\u7136\u5f8c\u6211\u5c0d\u6211\u7adf\u7136\u8a18\u5f97 C++ \u6709 <a href=\"https:\/\/en.cppreference.com\/w\/cpp\/algorithm\/transform_reduce\">transform_reduce<\/a> \u9019\u500b\u51fd\u6578\u5c0f\u5c0f\u5687\u4e86\u4e00\u8df3\u3002\u9084\u4e0d\u662f\u4e00\u822c\u7248\u7684 <a href=\"https:\/\/en.cppreference.com\/w\/cpp\/algorithm\/inner_product\">inner_product<\/a> \u5594\uff0c\u662f\u90a3\u500b\u53ef\u4ee5\u5e73\u884c\u5316\u7684\u7248\u672c\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Red-Nosed Reports<\/h2>\n\n\n\n<p>\u611f\u89ba\u53c8\u662f\u500b\u6703\u88ab AI \u79d2\u6bba\u7684\u4e00\u984c\u3002\u770b\u8d77\u4f86\u4eca\u5e74 Eric \u6bd4\u8f03\u6536\u6582\u4e86\u4e00\u9ede\uff0c\u53bb\u5e74\u524d\u5e7e\u984c (\u7279\u5225\u662f\u7b2c\u4e00\u984c) \u641e\u6210\u90a3\u6a23\u53ef\u80fd\u4ed6\u4e5f\u5687\u5230\u4e86\u5427\u3002\u800c\u4e14\u4eca\u5929\u958b\u984c\u6642\u6709\u7d04\u5169\u5206\u9418\u7db2\u7ad9\u662f\u639b\u9ede\u72c0\u614b\u7684\uff0c\u6211\u901a\u500b\u9748\u731c\u5927\u6982\u662f\u88ab\u79d2\u6bba\u7684 AI \u7d66\u885d\u7206\u4e86\u5427\u3002(\u88dc\u8a18\uff1a\u7d50\u679c\u597d\u50cf\u4e0d\u662f\u7684\u6a23\u5b50\uff1f\u6709\u4eba\u8aaa\u958b\u984c\u524d\u5341\u5206\u9418\u5c31\u639b\u4e86)<\/p>\n\n\n\n<p>\u57fa\u672c\u4e0a\u6c92\u4ec0\u9ebc\u597d\u8aaa\u7684\u5c31\u662f\u5237\u904e\u53bb\u6aa2\u67e5\u5c0d\u4e0d\u5c0d\u5c31\u884c\u4e86\u3002\u7136\u800c\u6211\u5728 Part 2 \u56e0\u70ba\u7a0d\u5fae\u53d6\u4e86\u9ede\u5de7\u800c\u5728\u8981\u5ffd\u7565\u7b2c\u4e00\u500b\u5143\u7d20\u6642\u4e0d\u5c0f\u5fc3\u591a\u6bd4\u8f03\u4e86\u5fc5\u5b9a\u5931\u6557\u7684\u4e00\u6b21\u6240\u4ee5\u5403\u4e86\u500b WA\u3002(\u5606\u6c23)<\/p>\n\n\n\n<p>\u958b\u984c\u5169\u500b\u534a\u5c0f\u6642\u88dc\u8a18\uff1a\u7d50\u679c\u5230\u73fe\u5728\u770b\u5230\u7684\u56db\u7bc7\u7684 reddit \u6c42\u6551\u6587\u90fd\u662f\u904e\u65bc\u76f8\u4fe1\u524d\u5169\u500b\u6578\uff0c\u7528\u5b83\u5011\u4f86\u6c7a\u5b9a\u8981\u770b\u905e\u589e\u9084\u662f\u905e\u6e1b\uff0c\u6240\u4ee5\u7576\u62d0\u4eba\u7684\u662f\u7b2c\u4e00\u6216\u7b2c\u4e8c\u500b\u6578\u6642\u5c31\u88ab\u62d0\u8d70\u4e86\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Mull It Over<\/h2>\n\n\n\n<p>\u9019\u984c\u6839\u672c\u5c31\u662f\u958b\u53e3\u5927\u53eb\u300c\u53bb\u7528 regex\uff01\u300d\u7684\u984c\u76ee XD \u9023\u6211\u9019\u500b\u81ea\u8a8d\u70ba\u5b57\u4e32\u5206\u6790\u662f\u6211\u7684\u5f37\u9805\u7684\u90fd\u89ba\u5f97\u300c\u554a\u5c31 regex \u4e1f\u4e0b\u53bb\u5c31\u597d\u4e86\u300d\u3002\u53ea\u662f C++ \u7684 regex \u7a0d\u5fae\u7b28\u91cd\u4e86\u90a3\u9ebc\u4e00\u9ede\u9ede\u5c31\u662f\u4e86\u3002(\u90a3\u662f C++11 \u6642\u4ee3\u7684\u7522\u7269\u6240\u4ee5\u6709\u4e00\u9ede\u7576\u6642\u7684\u300c\u98a8\u683c\u300d\u5728)<\/p>\n\n\n\n<p>\u7136\u5f8c\u4e0d\u77e5\u70ba\u4f55\u6211\u5fd8\u4e86\u5728 <code>|<\/code> \u4e4b\u5f8c\u7684 <code>()<\/code> \u7d44\u4e0d\u6703\u91cd\u65b0\u5f9e 1 \u8a08\u6578\uff0c\u6240\u4ee5\u5728\u60f3\u660e\u660e\u6558\u8ff0\u6293\u5230\u4e86\u600e\u9ebc\u6293\u4e0d\u5230\u6307\u4ee4\u2026\u2026<\/p>\n\n\n\n<p>\u88dc\u8a18\uff1a\u554a\uff0c\u5dee\u9ede\u5fd8\u8a18\u4e00\u4ef6\u4e8b\uff1a\u9019\u984c\u7684\u8f38\u5165\u6a94\u4e0d\u53ea\u4e00\u884c\u3002\u6211\u56e0\u70ba\u60f3\u5230 regex \u7684<code>.<\/code>\u6703\u56e0\u70ba\u8a2d\u5b9a\u4e0d\u540c\u53ef\u80fd\u6703\u4e0d\u53bb\u6293\u63db\u884c\uff0c\u6240\u4ee5\u5728\u5beb\u4e4b\u524d\u5148 <code>wc<\/code> \u4e86\u4e00\u4e0b\uff0c\u7136\u5f8c\u770b\u5230\u5b83\u56de\u5831\u516d\u884c\u2026\u2026XD \u9084\u597d\u9019\u5c31\u53ea\u662f\u591a\u52a0\u4e00\u500b\u8ff4\u5708\u800c\u5df2\u6240\u4ee5\u554f\u984c\u4e0d\u5927\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. Ceres Search<\/h2>\n\n\n\n<p>\u5dee\u9ede\u5fd8\u4e86\u66f4\u65b0\u7b2c\u56db\u984c\u3002\u9019\u984c\u8868\u9762\u4e0a\u662f\u500b\u5f88\u666e\u901a\u7684\u627e\u5b57\u904a\u6232 (\u6211\u7684\u5be6\u4f5c\u4e0a\u4e5f\u78ba\u5be6\u5f88\u7c21\u55ae)\uff0c\u4e0d\u904e\u908a\u754c\u8655\u7406\u554f\u984c\u679c\u7136\u9084\u662f\u54ac\u7684\u5927\u5bb6\u4e0d\u8981\u4e0d\u8981\u7684\u3002Reddit \u4e0a\u9019\u984c\u7684\u554f\u984c\u6700\u5927\u5b97\u7684\u6709\u5169\u500b\uff0c\u90fd\u662f\u908a\u754c\u554f\u984c\uff1a\u4e00\u500b\u662f\u628a 2D \u63a5\u6210 1D \u7136\u5f8c\u7528\u8de8 N \u500b\u5b57\u7576\u505a\u4e0b\u4e00\u5217\u7684\u627e\u6cd5\uff0c\u53e6\u4e00\u500b\u5247\u662f python \u7684\u8ca0\u7d22\u5f15\u3002\u6709\u4e9b\u4eba\u6709\u9019\u500b\u554f\u984c\u7684\u9084\u53ea\u6709\u4e00\u500b\u65b9\u5411\uff0c\u56e0\u70ba\u4ed6\u5011\u8f38\u5165\u4e4b\u5f8c\u6c92\u6709\u53bb\u6389\u63db\u884c\u76f4\u63a5\u627e\uff0c\u6240\u4ee5\u8de8\u5de6\u53f3\u908a\u754c\u7684\u6703\u8e29\u5230\u63db\u884c\u5b57\u5143\u6c92\u4e8b\uff0c\u4f46 python \u8ca0\u7d22\u5f15\u8de8\u4e0a\u4e0b\u908a\u754c\u7684\u5c31\u51fa\u4e8b\u4e86\u3002<\/p>\n\n\n\n<p>\u6211\u5462\uff1f\u5169\u5e74\u524d\u5beb\u597d\u7684\u4e8c\u7dad\u9663\u5217\u5b58\u53d6\u51fd\u5f0f\u5eab\u65e9\u5c31\u628a\u908a\u754c\u8655\u7406\u7d66\u505a\u597d\u4e86\uff0c\u6240\u6709\u901a\u904e\u90a3\u908a\u7684\u5b58\u53d6\u5168\u90e8\u6703\u6aa2\u67e5\u908a\u754c\uff0c\u8d85\u754c\u7684\u8a71\u6703\u56de\u50b3\u4e00\u500b\u56fa\u5b9a\u7684\u908a\u754c\u5b57\u5143\uff1b\u9019\u76f8\u7576\u65bc\u628a\u8f38\u5165\u570d\u4e00\u5708\u7d55\u5c0d\u4e0d\u6703\u51fa\u73fe\u7684\u5b57\uff0c\u7136\u5f8c\u5c31\u76f4\u63a5\u689d\u4ef6\u5beb\u4e0b\u53bb\uff0c\u8d85\u51fa\u908a\u754c\u7684\u67e5\u8a62\u6703\u88ab\u90a3\u4e00\u5708\u5b57\u64cb\u4e0b\u4f86\u80af\u5b9a\u4e0d\u6703\u51fa\u554f\u984c\u3002\u6240\u4ee5\u96e3\u5f97\u5728\u9019\u9ebc\u65e9\u7684\u4e00\u984c\u62ff\u5230\u4e86\u4e09\u4f4d\u6578\u7684\u540d\u6b21\u3002<\/p>\n\n\n\n<p>\u4e0d\u904e\u4e5f\u662f\u56e0\u70ba\u505a\u4e86 Everybody Codes \u8b93\u6211\u7a0d\u5fae\u5ef6\u4f38\u4e86\u9019\u500b\u4e8c\u7dad\u5b58\u53d6\u51fd\u5f0f\u5eab\uff0c\u5141\u8a31\u5728\u6709\u6307\u5b9a\u6642\u628a\u4e0a\u4e0b\u6216\u5de6\u53f3\u7d66\u63a5\u8d77\u4f86\u3002\u539f\u672c\u662f\u90a3\u908a\u7684 20-3 \u984c\u8981\u6211\u5728\u4e00\u500b\u4e0a\u4e0b\u63a5\u8d77\u4f86\u7684\u5730\u5716\u4e0a\u5c0b\u5f91\uff0c\u7136\u5f8c\u60f3\u60f3\u9019\u7a2e\u5b58\u53d6\u597d\u50cf\u6709\u6642\u6703\u5f88\u6709\u7528\u6240\u4ee5\u7c21\u55ae\u5beb\u8d77\u4f86\u4e86\u3002\u5982\u679c AoC \u9019\u908a\u6709\u78b0\u5230\u8981\u63a5\u7684\u53ef\u80fd\u5c31\u6703\u63a8\u4e0a\u4f86\u5427\uff1f<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. Print Queue<\/h2>\n\n\n\n<p>\u662f\u500b\u6bd4\u8d77\u524d\u5e7e\u5929\u4f86\u8aaa\u90fd\u76f8\u5c0d\u76f4\u63a5\u7684\u984c\u76ee\u3002\u65bc\u662f\u9806\u9806\u7684\u5beb\u4e0b\u53bb\u770b\u5230 part 2 \u8981\u628a\u5b83\u6392\u597d\u2026\u2026\u5514\u55ef\uff0c\u770b\u8d77\u4f86\u662f\u500b <code>std::sort()<\/code>\uff0c\u90a3\u5c31\u7528\u4e0b\u53bb\u5427\u3002\u901a\u4e86\u56de\u982d\u60f3\u60f3\uff0c\u54a6\u9019\u4e0d\u5c31\u8868\u793a part 1 \u53ef\u4ee5\u7528 <code>std::is_sorted()<\/code> \u79d2\u6389\u55ce\uff1f\u99ac\u4e0a\u6539\u4e86\u4e00\u4e0b\u679c\u7136\u7c21\u6f54\u597d\u591a\u3002\u4e0d\u904e\u9019\u4f3c\u4e4e\u9700\u8981\u984c\u76ee\u63d0\u4f9b\u7684\u9806\u5e8f\u662f\u5168\u5e8f\u624d\u884c\uff0c\u7167\u770b\u8d77\u4f86\u597d\u50cf\u662f\u7684\u6a23\u5b50\uff1a\u6211\u7684\u8f38\u5165\u6a94\u7b2c\u4e00\u90e8\u4efd\u6709 1176 \u884c\uff0c\u662f 49 \u500b\u5143\u7d20\u7684\u5168\u7d44\u5408\u3002<\/p>\n\n\n\n<p>\u88dc\u8a18\uff1a\u539f\u4f86\u8f38\u5165\u7684\u9019 49 \u5143\u7d20\u5168\u7d44\u5408\u88e1\u662f\u6709\u5708\u7684\u2026\u2026\u770b\u4e86\u4e00\u4e0b\u6211\u7684\u8f38\u5165\uff0c\u597d\u50cf\u662f\u6240\u6709\u4eba\u90fd\u662f\u5728 24 \u500b\u4e4b\u524d 24 \u500b\u4e4b\u5f8c\uff0c\u6240\u4ee5\u662f\u4e00\u5927\u5708\u7684\u610f\u601d\u55ce\uff1f\u4e0d\u904e\u9019\u6a23\u4e00\u4f86\uff0c\u56e0\u70ba\u9019\u500b\u5927\u5716\u6709\u5708\uff0c\u8981\u4f7f\u8f38\u5165\u80fd\u6709\u6392\u5e8f\u7d50\u679c\u5fc5\u9808\u8981\u7d66\u5168\u7d44\u5408\uff0c\u5426\u5247\u56e0\u70ba\u5708\u7684\u95dc\u4fc2\u5b8c\u5168\u4e0d\u80fd\u63a8\u7406\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. Guard Gallivant<\/h2>\n\n\n\n<p>\u6a21\u64ec\u984c\u3002\u4e0d\u77e5\u70ba\u4f55\u6211\u7684 part 2 \u7e3d\u662f\u6709\u5947\u602a\u7684 bug\uff0c\u6240\u4ee5\u70ba\u6b64\u6c7a\u5b9a\u628a\u4e00\u4e9b\u4e4b\u5f8c\u8981\u518d\u52a0\u5728\u4e8c\u7dad\u9663\u5217\u5b58\u53d6\u7684\u6771\u897f\u7d66\u52a0\u9032\u53bb\u4e86\uff1a\u4e00\u500b\u662f\u628a\u300c\u5ea7\u6a19+\u65b9\u5411\u300d\u6253\u5305\u8b8a\u6210\u4e00\u500b\u300c\u79fb\u52d5\u7269\u300d\uff0c\u9019\u500b\u6bd4\u8f03\u5c0f\u4e00\u9ede\uff1b\u53e6\u4e00\u500b\u5247\u662f\u8b93\u6211\u80fd\u7528\u4e00\u500b ranged-based for \u4f86\u628a\u6574\u5f35\u8868\u8d70\u904e\u4e00\u6b21\uff0c\u4e5f\u5c31\u662f\u9019\u500b\u9663\u5217\u5b58\u53d6\u7269\u4ef6\u8981\u628a\u5b83\u8b8a\u6210\u985e container \u4e86\u3002\u56e0\u70ba\u5f88\u96e3\u6703\u9700\u8981\u96a8\u6a5f\u5b58\u53d6\u6240\u4ee5\u5b83\u7684 iterator \u662f ForwardIterator\uff0c\u4e0d\u904e\u5012\u662f\u585e\u4e86\u4e00\u500b\u5c0f\u529f\u80fd\u662f\u76f4\u63a5\u628a iterator \u8f49\u6210\u5ea7\u6a19\u3002<\/p>\n\n\n\n<p>\u56de\u5230\u984c\u76ee\u3002Part 1 \u7684\u7d93\u904e\u9ede\u5176\u5be6\u5c31\u662f\u7d66\u6211\u5011\u4e00\u500b\u63d0\u793a\u8aaa\uff0c\u5168\u90e8 17K \u500b\u9ede\u53ea\u6709\u7d04\u4e09\u5206\u4e4b\u4e00\u7684 5K \u500b\u9ede\u662f\u8981\u8003\u616e\u7684\uff0c\u4e0d\u7528\u5168\u90e8\u90fd\u8dd1\u4e00\u6b21\u3002\u5728\u52c9\u5f37\u9001\u904e\u4e4b\u5f8c\u6211\u7e7c\u7e8c\u7814\u7a76\u9019 part2 \u8981\u600e\u9ebc\u6539\u624d\u597d\uff0c\u6771\u62c9\u897f\u62c9\u6700\u7d42\u5b9a\u7248\u7684\u7248\u672c\u662f\uff1a\u505a\u8ddf part 1 \u4e00\u6a23\u7684\u6a21\u64ec\uff0c\u4f46\u5728\u6bcf\u4e00\u6b65\u5f8c\u90fd\u8a66\u8a66\u770b\u5728\u8b66\u885b\u524d\u9762\u653e\u969c\u7919\u7269\uff0c\u80fd\u653e\u7684\u8a71\u5c31\u5148\u5c94\u51fa\u4e00\u689d\u4e16\u754c\u7dda\u8dd1\u88ab\u9019\u500b\u969c\u7919\u7269\u64cb\u4f4f\u7684\u72c0\u6cc1\u3002\u539f\u672c\u662f\u7528 <code>unordered_set<\/code> \u4f86\u627e\u8ff4\u5708\uff0c\u4e0d\u904e\u5f8c\u4f86\u6211\u60f3\u5230\u6211\u4e0d\u7528\u627e\u51fa\u5728\u5708\u54ea\uff0c\u53ea\u8981\u627e\u5230\u6709\u5708\u5c31\u597d\uff0c\u90a3\u5c31\u80fd\u7528<a href=\"https:\/\/zh.wikipedia.org\/zh-tw\/Floyd%E5%88%A4%E5%9C%88%E7%AE%97%E6%B3%95\">\u9f9c\u5154\u8cfd\u8dd1\u6f14\u7b97\u6cd5<\/a>\u7684\u7c21\u55ae\u7248\u4f86\u627e\u5708\u4e86\u3002\u6700\u5f8c\u6211\u6bcf\u6b21\u90fd\u6703\u5fd8\u7684 -O3 \u958b\u4e0b\u53bb\u679c\u7136\u4e0d\u5230\u4e8c\u5341\u5206\u4e4b\u4e00\u79d2\u5c31\u6536\u5de5\u4e86\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">7. Bridge Repair<\/h2>\n\n\n\n<p>\u7531\u5de6\u7b97\u5230\u53f3\u4e00\u526f\u770b\u8d77\u4f86\u5c31\u662f DP \u984c\u7684\u6a23\u5b50\u3002\u4e0d\u904e\u5373\u4f7f\u52a0\u4e86\u628a\u4e2d\u9014\u7d50\u679c\u592a\u5927\u7684\u7d66\u4e1f\u6389\u7684\u6700\u4f73\u5316\u5168\u90e8\u8dd1\u5b8c\u9084\u662f\u8981\u5927\u6982\u56db\u79d2\u7684\u6a23\u5b50\u3002<\/p>\n\n\n\n<p>\u8aaa\u8d77\u4f86\u6211\u7a0d\u5fae\u7814\u7a76\u4e86\u4e00\u4e0b\u6578\u503c\u7bc4\u570d\u3002\u80fd\u7522\u751f\u6578\u5b57\u7684\u5927\u5c0f\u986f\u7136\u662f\u52a0\u6cd5 &lt; \u4e58\u6cd5 &lt; \u9023\u63a5\uff0c\u6240\u4ee5\u53ea\u8981\u5168\u90e8\u9023\u8d77\u4f86\u6c92\u6709\u7206\u90a3\u4e2d\u9014\u5c31\u4e0d\u53ef\u80fd\u7206\uff1b\u539f\u672c\u6211\u4ee5\u70ba\u9019\u984c\u6703\u6709\u66f4\u5927\u7bc4\u570d\u6703\u7206\u70b8\u7684\u6578\u503c\uff0c\u4f46\u770b\u8d77\u4f86\u5728 2<sup>53<\/sup> \u7684\u786c\u4e0a\u9650\u4e4b\u4e0b\u984c\u76ee\u4e5f\u4e0d\u80fd\u51fa\u592a\u626f\uff0c\u8a66\u8457\u6383\u4e86\u4e00\u4e0b\u4e5f\u767c\u73fe\u984c\u76ee\u7d66\u7684\u6578\u5b57\u9023\u8d77\u4f86\u6700\u591a\u5c31 15 \u500b\uff0c\u5168\u9023\u8d77\u4f86\u4e5f\u90fd\u5c0f\u65bc 10<sup>15<\/sup> \u6240\u4ee5\u7d55\u5c0d\u4e0d\u6703\u6709\u4e8b\u3002\u4f3c\u4e4e\u9019\u5c31\u53ea\u662f\u8981\u6293 (\u4e0d\u5c0f\u5fc3) \u7528\u4e86 32-bit \u7684\u4eba\u800c\u5df2\u7684\u6a23\u5b50\u3002<\/p>\n\n\n\n<p>\u4e00\u500b\u6709\u8da3\u7684\u4e0d\u600e\u9ebc\u984c\u5916\u7684\u984c\u5916\u8a71\uff1aReddit \u4e0a\u6709\u4e00\u500b\u5f88\u4ee4\u4eba\uff1f\uff1f\uff1f\u7684\u932f\u6cd5\u662f\uff1a\u4ed6\u5011\u8655\u7406\u8f38\u5165\u5f8c\u628a\u6bcf\u4e00\u884c\u653e\u5230\u4e00\u500b\u4ee5\u76ee\u6a19\u6578\u503c\u70ba key \u7684 hashmap \u88e1\uff0c\u7136\u5f8c\u5c31\u88ab\u5076\u7136\u51fa\u73fe\u7684\u4e0d\u540c\u884c\u4f46\u6709\u540c\u6a23\u76ee\u6a19\u6578\u503c\u7684\u72c0\u6cc1\u7d66\u5a4a\u5230\u4e86\u2026\u2026\u7167\u5927\u5bb6\u7684\u56de\u61c9\u770b\u8d77\u4f86\u61c9\u8a72\u53ea\u6709\u90e8\u4efd\u4eba\u7684\u8f38\u5165\u6709\u9019\u7a2e\u72c0\u6cc1\uff0c\u56e0\u70ba\u6709\u770b\u5230\u56de\u61c9\u8aaa\u7528\u9019\u6a23\u5beb\u7684\u7a0b\u5f0f\u7528\u5728\u56de\u61c9\u8005\u7684\u8f38\u5165\u4e0a\u662f\u6709\u6b63\u89e3\u7684\uff1b\u4f46\u4e5f\u6c92\u6709\u5c11\u5230\u5c11\u6578\u8f38\u5165\uff0c\u56e0\u70ba\u5230\u6211\u5beb\u4e0b\u9019\u6bb5\u6587\u5b57\u70ba\u6b62 (\u958b\u5834\u7d04\u4e09\u500b\u534a\u5c0f\u6642) reddit \u4e0a\u6709\u9019\u500b\u554f\u984c\u7684\u4eba\u5df2\u7d93\u81f3\u5c11\u6709\u56db\u500b\u4e86\u2026\u2026<\/p>\n\n\n\n<p>\u88dc\u8a18\uff1a\u7136\u5f8c<a href=\"https:\/\/redd.it\/1h8u1ug\">\u6709\u7bc7\u6587\u7ae0<\/a>\u9ede\u51fa\u4e86\u6211\u7684\u76f2\u9ede\u4e86\uff1a\u4ee5\u9019\u984c\u9019\u7a2e\u9650\u5236\u5f0f\u7684\u72c0\u6cc1\uff0c\u5f9e\u53f3\u5230\u5de6\u7b97\u6703\u6bd4\u5f9e\u5de6\u5230\u53f3\u7b97\u6548\u7387\u4f86\u5f97\u597d\u3002\u7531\u5de6\u5230\u53f3\u53ea\u6709\u8d85\u51fa\u7bc4\u570d\u7684\u72c0\u6cc1\u53ef\u4ee5\u526a\u6389\uff0c\u4f46\u7531\u53f3\u5230\u5de6\u7684\u8a71\uff0c\u52a0\u6cd5\u8ddf\u539f\u672c\u4e00\u6a23\u53ef\u4ee5\u526a\u6389\u592a\u5c0f\u7684\uff0c\u4f46\u4e58\u6cd5\u53ef\u4ee5\u526a\u6389\u4e0d\u80fd\u6574\u9664\u7684\uff0c\u9023\u63a5\u53ef\u4ee5\u526a\u6389\u5c3e\u6578\u4e0d\u5c0d\u7684\uff0c\u9019\u6a23\u7e2e\u5c0f\u5617\u8a66\u7684\u65b9\u5f0f\u53ef\u4ee5\u522a\u6389\u4e00\u5806\u4e0d\u5408\u7684\u72c0\u6cc1\u3002\u6539\u4e86\u500b\u53f3\u5f80\u5de6\u7684\u7248\u672c\u751a\u81f3\u6c92\u958b\u6700\u4f73\u5316\u90fd\u662f\u77ac\u9593\u51fa\u7b54\u6848\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">8. Resonant Collinearity<\/h2>\n\n\n\n<p>\u7dda\u6027\u4ee3\u6578\u984c (\u5927\u8aa4)\u3002\u597d\u5566\u5176\u5be6\u6c92\u6709\u4ec0\u9ebc\u592a\u9ad8\u5927\u4e0a\u7684\u8a08\u7b97\uff0c\u4e0d\u904e\u5c31\u662f\u500b\u5ea7\u6a19\u8ddf\u5411\u91cf\u7684\u52a0\u6e1b\u904b\u7b97\u554f\u984c\u800c\u5df2\u3002\u6b63\u597d\u5ea7\u6a19\u8ddf\u5411\u91cf\u662f\u6211\u7684\u4e8c\u7dad\u9663\u5217\u5b58\u53d6\u51fd\u5f0f\u5eab\u88e1\u7684\u57fa\u672c\u8a08\u7b97\u985e\u5225\uff0c\u6240\u4ee5\u5c31\u76f4\u63a5\u62ff\u4f86\u7528\u4e86\u3002\uff08\u8a2d\u8a08\u4e0a\u6709\u4e00\u500b <code>Coord<\/code> \u985e\u5225\u5b58\u5ea7\u6a19\uff0c<code>Vector<\/code> \u985e\u5225\u5b58\u5411\u91cf\uff0c\u7136\u5f8c\u6709\u4e9b\u52a0\u6e1b\u578b\u614b\u7684\u6539\u8b8a\u4f8b\u5982\u5169\u500b <code>Coord<\/code> \u76f8\u6e1b\u5f97 <code>Vector<\/code>\uff0c<code>Coord<\/code> \u52a0 <code>Vector<\/code> \u6703\u8b8a\u6210\u53e6\u4e00\u500b <code>Coord<\/code>\uff0c\u6240\u4ee5 part 1 \u7684\u5169\u9ede\u5c31\u662f <code>c1+(c1-c2)<\/code> \u8ddf <code>c2+(c2-c1)<\/code> \u4e86)<\/p>\n\n\n\n<p>\u4e0d\u904e\u521d\u7248\u7a0b\u5f0f\u78bc\u7684 part 2 \u56e0\u70ba\u7b97\u932f\u908a\uff0c\u6240\u4ee5\u539f\u672c\u53ea\u6709\u7b97\u5728\u5169\u500b\u5929\u7dda\u5916\u9762\u7684\u5ea7\u6a19\u9ede\uff0c\u7d50\u679c\u4e5f\u7b54\u5c0d\u4e86\uff1f\uff01\u9019\u662f\u4e0d\u662f\u4ee3\u8868\u984c\u76ee\u7684\u8f38\u5165\u6c92\u6709\u6703\u7b97\u5230\u4e2d\u9593\u7684\u72c0\u6cc1\uff0c\u6240\u4ee5\u539f\u672c\u4ee5\u70ba\u6703\u9700\u8981\u7684 <code>gcd<\/code> \u8a08\u7b97\u5176\u5be6\u662f\u4e0d\u5fc5\u8981\u7684\uff1f\uff01\u9019\u662f Day 8 \u984c\u7684\u96e3\u5ea6\u55ce\uff1f\uff01\uff1f\uff01<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">9. Disk Fragmenter<\/h2>\n\n\n\n<p>\u554a\uff0c\u78c1\u789f\u91cd\u7d44\u7a0b\u5f0f\u3002\u90a3\u5df2\u7d93\u662f\u53e4\u8001\u7684\u56de\u61b6\u4e86\u5462 (\u9060\u76ee)<\/p>\n\n\n\n<p>\u54b3\u3002\u65bc\u662f\u4eca\u5929\u4e5f\u662f\u6a21\u64ec\u984c\u3002\u4e0d\u904e\u5169\u500b\u6a21\u64ec\u7684\u65b9\u5f0f\u9069\u5408\u7684\u8cc7\u6599\u7d50\u69cb\u4e0d\u592a\u4e00\u6a23\uff1apart 1 \u662f\u5340\u584a\u70ba\u55ae\u4f4d\u6240\u4ee5\u662f id \u7684\u9663\u5217\uff0c\u4f46 part2 \u662f\u6a94\u6848\u70ba\u55ae\u4f4d\u6240\u4ee5\u662f\u3008id, \u9577\u5ea6\u3009\u7684\u93c8\u7d50\u4e32\u5217\u6bd4\u8f03\u9069\u5408\u3002\u6211\u5927\u6982\u53ef\u4ee5\u60f3\u50cf\u4eca\u5929\u7684 reddit \u6703\u6709\u4ec0\u9ebc\u6a23\u8165\u98a8\u8840\u96e8 (X) \u7684 bug \u6587\u7ae0\u4e86\u3002<\/p>\n\n\n\n<p>\u2026\u2026\u7136\u5f8c\uff0c\u524d\u5169\u7bc7 Day 9 \u7684\u6c42\u6551\u6587\u662f\u88ab\u984c\u76ee\u7bc4\u4f8b\u7684\u4e00\u4f4d\u6578 id \u7d66\u9a19\u4e86\uff0c\u4ee5\u70ba\u6bcf\u4e00\u500b\u5340\u584a\u90fd\u53ea\u6709\u4e00\u4f4d\u6578\uff0c\u6240\u4ee5 10 \u865f\u4ee5\u4e0a\u4e0d\u77e5\u9053\u8981\u4e0d\u8981\u505a\u4ec0\u9ebc\u8655\u7406\u2026\u2026\u6211\u662f\u6709\u5fc3\u7406\u6e96\u5099\u6703\u6709\u602a\u554f\u984c\u5566\uff0c\u4f46\u9019\u4e5f\u592a\u602a\u4e86\u9ede Orz<\/p>\n\n\n\n<p>\u7b97\u662f\u4e0d\u600e\u9ebc\u6709\u95dc\u7684\uff1a\u6211\u4eca\u5929\u628a\u6211\u7684\u8f38\u5165\u51fd\u5f0f\u5eab\u4e5f\u52a0\u5165\u8ddf\u4e0a\u9762\u4e8c\u7dad\u9663\u5217\u5b58\u53d6\u51fd\u5f0f\u5eab\u4e00\u6a23\u7684 range based for \u652f\u63f4\u4e86\u3002\u9019\u6a23\u5c31\u4e0d\u7528\u4e00\u500b\u5f88\u5f46\u626d\u7684 lambda callback \u5beb\u908f\u8f2f\uff0c\u76f4\u63a5\u5beb\u6210\u666e\u901a\u7684 for \u8ff4\u5708\u5373\u53ef\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">10. Hoof It<\/h2>\n\n\n\n<p>\u5f88\u6a19\u6e96\u7684\u5c0b\u5f91\u984c\uff0c\u800c\u4e14\u56e0\u70ba\u5c0b\u5f91\u9577\u5ea6\u56fa\u5b9a\u662f 10 \u6240\u4ee5\u751a\u81f3\u76f4\u63a5\u4f86\u4e5f\u6c92\u4ec0\u9ebc\u554f\u984c\u3002\u6709\u4e9b\u5beb\u6cd5\u7684 part 2 \u61c9\u8a72\u6703\u6bd4 part 1 \u7c21\u55ae\uff0c\u4e0d\u904e\u9019\u5169\u90e8\u4efd\u5230\u5e95\u54ea\u4e00\u500b\u771f\u7684\u300c\u7c21\u55ae\u300d\u4e5f\u5f88\u96e3\u8aaa\u5c31\u662f\u4e86\u3002(\u7136\u5f8c reddit \u524d\u4e94\u7bc7 Day 10 \u6587\u5c31\u90fd\u662f\u8b80\u932f part 1 \u4f46\u89e3\u4e86 part 2 \u7684\u8ff7\u56e0 XD) \u6211\u672c\u4f86 part 2 \u8981\u60f3\u4e00\u4e0b\u600e\u9ebc\u6539\u7684\uff0c\u7d50\u679c\u6539\u5b8c\u767c\u73fe\u5176\u5be6\u53ef\u4ee5\u5beb\u5728\u4e00\u8d77\uff0c\u6240\u4ee5\u5c31\u8b8a\u6210\u540c\u6642\u8a08\u7b97\u5169\u90e8\u4efd\u4e86\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">11. Plutonian Pebbles<\/h2>\n\n\n\n<p>\u770b\u5230\u9019\u7a2e\u8ddf look-and-say \u6709\u76f8\u4f3c\u884c\u70ba\u7684\u6771\u897f\u61c9\u8a72\u8981\u60f3\u5230 part 2 \u6703\u4e00\u6b21\u554f\u66f4\u4e45\u4e4b\u5f8c\u2026\u2026\u3002\u4e0d\u904e\u4e5f\u56e0\u70ba\u9019\u6a23\uff0c\u5728 11 \u6708\u71b1\u8eab\u6642\u5beb\u8d77\u4f86\u7684 cache \u5316\u51fd\u6578\u6d3e\u4e0a\u7528\u5834\u4e86\uff1b\u7576\u521d\u8a2d\u8a08\u9019\u500b cache \u5316\u5c31\u662f\u53ea\u8981\u88e1\u9762\u64fa\u51fd\u6578\uff0ccache \u7684\u908f\u8f2f\u4e0d\u7528\u5beb\u5728\u51fd\u6578\u88e1\uff0c\u6703\u7528\u985e\u4f3c Decorator pattern \u7684\u65b9\u5f0f\u88dd\u98fe\u4e0a\u53bb\uff0c\u70ba\u4e86 template \u4ecb\u9762\u5408\u7406\u7576\u521d\u50b7\u4e86\u4e0d\u5c11\u8166\u7b4b (\u5f8c\u4f86\u56e0\u70ba\u4e0d\u5b9a\u53c3\u6578\u6a21\u677f\u5f88\u96e3\u5beb\uff0c\u6240\u4ee5\u5c31\u53ea\u5beb\u6700\u591a\u5169\u500b\u53c3\u6578\u7684\u4e86\uff1b\u8981\u66f4\u591a\u53c3\u6578\u7684\u8a71\u518d\u8aaa)\u3002\u597d\u8655\u5c31\u662f\u4eca\u5929\u8981\u7528\u6642\u76f4\u63a5\u5beb\u597d\u908f\u8f2f\uff0c\u5916\u9762\u639b cache \u5316\u5c31\u76f4\u63a5\u7528\u4e86\u3002<\/p>\n\n\n\n<p>\u2026\u2026\u662f\u8aaa\uff0c\u9019\u984c\u662f\u4e0d\u662f\u8ddf<a href=\"https:\/\/adventofcode.com\/2021\/day\/6\">\u4e09\u5e74\u524d\u71c8\u7c60\u9b5a\u90a3\u984c<\/a>\u5f88\u50cf\u2026\u2026\uff1f<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">12. Garden Groups<\/h2>\n\n\n\n<p>\u5fae\u5999\u7684\u4e0d\u77e5\u9053\u8981\u4e0d\u8981\u7b97\u505a\u8a08\u7b97\u5e7e\u4f55\u7684\u984c\u76ee\u3002\u984c\u76ee\u662f\u554f\u7531\u683c\u5b50\u5408\u6210\u7684\u591a\u908a\u5f62\u7684\u9762\u7a4d\u3001\u5468\u9577\u548c\u908a\u6578\u3002\u9762\u7a4d\u6df9\u500b\u6c34\u5c31\u597d\uff0c\u5468\u9577\u5728\u6df9\u6c34\u7684\u540c\u6642\u5f80\u5916\u9762\u770b\u4e00\u770b\u4e5f\u884c\uff0c\u554f\u984c\u662f\u908a\u6578\u3002<\/p>\n\n\n\n<p>\u6b63\u5728\u6211\u5728\u60f3\u8981\u4e0d\u8981\u8ddf\u53bb\u5e74\u4e00\u6a23\u642c\u76ae\u514b\u51fa\u4f86\u7684\u6642\u5019\u7a81\u7136\u9748\u5149\u4e00\u9583\uff1a\u6211\u4e0d\u8981\u7b97\u908a\u6578\uff0c\u6211\u7b97\u89d2\u843d\u6578\u5c31\u597d\u5566\uff01\u65bc\u662f\u4e8b\u60c5\u5c31\u8b8a\u5f97\u7c21\u55ae\u8d77\u4f86\u4e86\uff1a\u53ea\u8981\u6aa2\u67e5\u6bcf\u4e00\u683c\u7684\u56db\u500b\u89d2\u662f\u4e0d\u662f\u6240\u5728\u591a\u908a\u5f62\u7684\u89d2\u5373\u53ef\u3002\u8a73\u7d30\u689d\u4ef6\u662f\uff0c\u7576\u6211\u5011\u5728\u4e0b\u5716\u4e2d\u7684\u5de6\u4e0a\u89d2\u7684 A \u6642\uff0c\u6578\u6eff\u8db3\u4ee5\u4e0b\u72c0\u6cc1\u7684\u89d2\u843d\u6578\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>AX    AA\nY*    AX<\/code><\/pre>\n\n\n\n<p>\u5de6\u908a\u6578\u5f80\u5916\u5f4e\u7684\u89d2\uff0c<code>*<\/code> \u4e0d\u5224\u65b7\u4f7f\u5c0d\u89d2\u9023\u63a5\u7684\u9ede\u7b97\u5169\u6b21\uff1b\u53f3\u908a\u6578\u5f80\u5167\u5f4e\u7684\u89d2\uff0c\u4e09\u500b A \u53ea\u8b93\u9019\u500b A \u8a08\u5165\u8a08\u6578\u3002\u9019\u6a23\u6578\u904e\u4e00\u908a\u4e4b\u5f8c\u5c31\u662f\u7e3d\u89d2\u843d\u6578\uff0c\u4e5f\u5c31\u662f\u7e3d\u908a\u6578\u4e86\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">13. Claw Contraption<\/h2>\n\n\n\n<p>\u2026\u2026\u4e00\u500b\u7d14\u5230\u4e0d\u80fd\u518d\u7d14\u7684\u570b\u4e00\u6578\u5b78\u984c\u3002\u9019\u984c\u64fa\u5728\u9019\u88e1\u662f\u8981\u552c\u90a3\u4e9b\u6578\u5b78\u4e0d\u8010\u75c7\u7684\u4eba\u55ce Orz \u6240\u4ee5\u7576\u7136\u7b54\u6848\u5c31\u662f\u514b\u62c9\u746a\u76f4\u63a5\u4e0a\u4e86\u3002Part 2 \u52a0\u7684 10<sup>13<\/sup> \u5c31\u53ea\u662f\u5728\u8981\u89e3\u984c\u8005\u53bb\u627e\u6578\u5b78\u89e3\u800c\u5df2\u3002<\/p>\n\n\n\n<p>\u4ec0\u9ebc\uff1f\u8f38\u5165\u5206\u6790\uff1f\u524d\u5e74\u65e9\u5c31\u5beb\u4e86\u53ea\u8b80\u6578\u5b57\u7684\u51fd\u6578\u5c31\u7528\u5566\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">14. Restroom Redoubt<\/h2>\n\n\n\n<p>\u679c\u7136\u524d\u4e00\u5929\u8f15\u9b06\u5c31\u662f\u8868\u793a\u9019\u500b\u9031\u672b\u4e0d\u6703\u592a\u597d\u904e\u3002Part 1 \u662f\u500b\u5f88\u57fa\u672c\u7684\u6a21\u64ec\u984c\uff0c\u6bd4\u8f03\u4e0d\u4e00\u6a23\u7684\u5c31\u53ea\u662f\u5730\u5716\u662f\u50b3\u7d71(?)\u7684\u62d3\u64b2\u751c\u751c\u5708\u5730\u5716 (\u5373\u662f\u4e0a\u4e0b\u8ddf\u5de6\u53f3\u9023\u901a)\uff0c\u4ee5\u53ca\u8981\u7b97\u7684\u5206\u5e03\u662f\u500b\u985e\u4f3c\u300c\u8c61\u9650\u300d\u7684\u6771\u897f\u3002<\/p>\n\n\n\n<p>Part 2 \u5c31\u597d\u73a9\u4e86\u3002Day 11 \u6642 reddit \u4e0a\u6709\u5f35\u8ff7\u56e0\u8aaa\u7576 part 2 \u984c\u76ee\u8d8a\u77ed\u5c31\u6703\u8d8a\u53ef\u6015\uff0c\u4eca\u5929\u7576\u7136\u4e5f\u4e0d\u4f8b\u5916\uff1a\u5b83\u8aaa\u9019\u4e9b\u6a5f\u5668\u4eba\u5728\u8dd1\u7684\u6642\u5019\uff0c\u5076\u723e\u6703\u7d44\u6210\u4e00\u500b\u8056\u8a95\u6a39\u7684\u5f62\u72c0\uff0c\u554f\u6700\u5feb\u4f55\u6642\u6703\u51fa\u73fe\uff1f\u2014\u2014\u554f\u984c\u662f\uff0c\u5230\u5e95\u90a3\u68f5\u6a39\u9577\u600e\u6a23\uff1f\uff01\u6211\u8981\u600e\u9ebc\u5728\u7a0b\u5f0f\u88e1\u5beb\u51fa\u300c\u9019\u88e1\u6709\u68f5\u8056\u8a95\u6a39\u300d\u9019\u6a23\u7684\u689d\u4ef6\uff1f\uff01\uff1f\uff01<\/p>\n\n\n\n<p>\u5be6\u5728\u6c92\u4ec0\u9ebc\u9ede\u5b50\u53ea\u597d\u96a8\u4fbf\u8003\u616e\u4e00\u4e0b\uff1a\u65e2\u7136\u6703\u7d44\u6210\u4e00\u500b\u5716\u5f62\uff0c\u90a3\u8868\u793a (\u5e7e\u4e4e) \u6240\u6709\u4eba\u7684\u4f4d\u7f6e\u61c9\u8a72\u90fd\u5728\u9644\u8fd1\uff0c\u9019\u6a23\u7684\u8a71\u6211\u53ea\u8981\u628a\u6bcf\u5c0d\u7684\u8ddd\u96e2\u548c\u6c42\u51fa\u4f86\u627e\u6700\u5c0f\u503c\uff0c\u5927\u6982\u5c31\u6703\u5728\u9644\u8fd1\u3002\u6c42\u6bcf\u5c0d\u7684\u8ddd\u96e2\u548c\u9019\u4ef6\u4e8b\u53bb\u5e74 Day 11 \u5c31\u505a\u904e\u4e86\uff0c\u7528\u6211\u5728\u90a3\u88e1\u63d0\u5230\u7684\u6392\u5e8f+\u7dda\u6027\u6642\u9593\u505a\u6cd5\u53ef\u4ee5\u5f88\u5feb\u6383\u5b8c\u5168\u90e8 101&#215;103 \u500b\u72c0\u614b\u3002\u5e78\u904b\u5730\u6700\u5c0f\u503c\u6240\u5728\u7684\u5716\u5f62\u771f\u7684\u51fa\u73fe\u4e86\u8981\u6c42\u7684\u8056\u8a95\u6a39\u6240\u4ee5\u90a3\u5c31\u662f\u7b54\u6848\u4e86\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">15. Warehouse Woes<\/h2>\n\n\n\n<p>\u5982\u6a19\u984c\u6240\u8ff0\uff0c\u4eca\u5929\u7684\u984c\u76ee\u662f\u5009\u5eab\u756a\u6a21\u64ec\u984c\u3002\u6240\u4ee5\u57fa\u672c\u4e0a\u6c92\u4ec0\u9ebc\u597d\u8aaa\u7684\u5c31\u662f\u8dd1\u4e0b\u53bb\u5c31\u5c0d\u4e86\uff0c\u662f\u5c0d\u662f\u932f\u628a\u4e2d\u9593\u904e\u7a0b\u5370\u51fa\u4f86\u5c31\u6703\u77e5\u9053\u54ea\u88e1\u4e0d\u5c0d\u3002<\/p>\n\n\n\n<p>\u7b97\u662f\u6709\u9ede\u76f8\u95dc\u7684\u984c\u5916\u8a71\uff0c\u6211\u524d\u9663\u5b50\u5728<a href=\"https:\/\/www.plurk.com\/p\/3g3yyjbvno\">\u5657\u6d6a<\/a>\u4e0a\u8f49\u4e86\u7bc7<a href=\"https:\/\/www.youtube.com\/watch?v=hbIhawL7DIE\">\u5f71\u7247<\/a>\u5728\u8b1b\u4e00\u500b\u6c92\u4ec0\u9ebc\u73a9\u904e\u89e3\u8b0e\u904a\u6232\u7684\u73a9\u5bb6\u56e0\u70ba<a href=\"https:\/\/store.steampowered.com\/app\/2121980\/Void_Stranger\/\">\u300aVoid Stranger\u300b<\/a>\u8df3\u9032\u4e86\u5009\u5eab\u756a\u904a\u6232\u7684\u5751\u88e1\u7684\u5fc3\u8def\u6b77\u7a0b\u3002\u4eca\u5929\u7684\u984c\u76ee\u5176\u5be6\u8b93\u6211\u60f3\u5230\u53e6\u5916\u5169\u500b\u6c92\u5728\u90a3\u5657\u88e1\u63d0\u5230\u7684\u5009\u5eab\u756a\u904a\u6232\uff1a<a href=\"https:\/\/store.steampowered.com\/app\/1270390\/The_Golem\/\">\u300aThe Golem\u300b<\/a>\u548c<a href=\"https:\/\/store.steampowered.com\/app\/1492620\/Jelly_Is_Sticky\/\">\u300aJelly is Sticky\u300b<\/a>\u3002\u96d6\u7136\u4eca\u5929\u7684\u984c\u76ee\u53ea\u6709\u5169\u683c\u5927\u7684\u65b9\u584a\uff0c\u4f46\u9019\u500b\u4e00\u6b21\u63a8\u52d5\u6578\u500b\u9023\u5728\u4e00\u8d77\u7684\u65b9\u584a\u7684\u6982\u5ff5\u78ba\u5be6\u4e0d\u7b97\u5c11\u898b\u5c31\u662f\u4e86\u3002<\/p>\n\n\n\n<p>\u2026\u2026\u5594\u5c0d\u4e86\uff0cEric \u7684<s>\u60e1\u8da3\u5473<\/s>\u5e7d\u9ed8\u679c\u7136\u5f88\u6709\u8da3\uff1a\u7531\u65bc\u4eca\u5e74\u662f\u5341\u9031\u5e74\uff0c\u4eca\u5e74\u7684\u6545\u4e8b\u57fa\u672c\u4e0a\u662f\u904e\u53bb\u7684\u7cbe\u5f69\u5927\u56de\u9867\uff1b\u7136\u5f8c\u4eca\u5929\u7684\u984c\u76ee\u6545\u4e8b\u5c31\u6b63\u597d\u56de\u9867\u5230\u4e09\u5e74\u524d\u7684\u71c8\u7c60\u9b5a\uff0c\u96d6\u7136\u984c\u76ee\u88e1\u6709\u9023\u904e\u53bb\u4e0d\u904e\u5be6\u969b\u8981\u505a\u7684\u984c\u76ee\u57fa\u672c\u4e0a\u7121\u95dc\u3002\u7136\u800c\u4e0a\u9762\u6211\u4e5f\u63d0\u5230\u904e Day 11 \u7684\u984c\u76ee\u8ddf\u71c8\u7c60\u9b5a\u90a3\u984c\u7684 part 2 \u6709\u7570\u66f2\u540c\u5de5\u4e4b\u5999\uff0c\u800c\u4e14\u7531\u65bc\u6536\u6582\u72c0\u614b\u96c6\u7684\u5927\u5c0f\u5920\u5927<sup data-fn=\"66d9438a-f4ec-4965-baa7-076194fb02d5\" class=\"fn\"><a href=\"#66d9438a-f4ec-4965-baa7-076194fb02d5\" id=\"66d9438a-f4ec-4965-baa7-076194fb02d5-link\">1<\/a><\/sup>\u9084\u4e0d\u80fd\u7528\u7576\u5e74\u7684\u8d85\u5feb\u89e3\u77e9\u9663\u4e58\u6cd5\u4f86\u505a\uff0c\u8b93\u4e0d\u5c11\u4eba\u770b\u5230\u63d0\u5230\u71c8\u7c60\u9b5a\u5c31\u4e00\u80a1 PTSD \u4e0a\u4f86\u4e86 XD<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">16. Reindeer Maze<\/h2>\n\n\n\n<p>\u2026\u2026\u600e\u9ebc\u6709\u7a2e\u6211\u5011\u53c8\u9677\u5165\u5730\u5716\u984c\u8ff4\u5708\u7684\u932f\u89ba\u4e86\u3002<\/p>\n\n\n\n<p>Part 1 \u5c31\u662f\u500b\u5f88\u6a19\u6e96\u7684\u55ae\u6e90\u6700\u77ed\u8def\u5f91\uff0c\u4f46 Part 2 \u5c31\u9ebb\u7169\u4e86\u3002\u7406\u8ad6\u4e0a Dijkstra \u662f\u6709\u8fa6\u6cd5\u7d00\u9304\u8def\u5f91\u5566\uff0c\u4f46\u6211\u61f6\u2026\u2026\u65bc\u662f\u6211\u7684\u61f6\u4eba (X) \u505a\u6cd5\u662f\u5728\u5c0b\u5f91\u4e2d\u7d00\u9304\u904e\u7a0b\u4e2d\u6bcf\u4e00\u9ede\u7684\u6700\u77ed\u8def\u5f91\u9577\u5ea6\uff0c\u7136\u5f8c\u81ea\u6700\u77ed\u8def\u5f91\u6700\u9577\u7684\u5f80\u56de\u627e\uff0c\u5c0d\u6bcf\u4e00\u500b\u6709\u7d00\u9304\u7684\u9ede\u6aa2\u67e5\u662f\u5426\u5b83\u6709\u5f8c\u7e7c\u4e5f\u5728\u5c0d\u61c9\u9577\u5ea6\u7684\u7d00\u9304\u4e2d\uff0c\u5982\u679c\u6c92\u6709\u7684\u8a71\u5c31\u628a\u9019\u4e00\u9ede\u62ff\u6389\u3002(\u4e5f\u5c31\u662f\u5012\u56de\u4f86\u628a\u300c\u6b7b\u8def\u300d\u7d66\u6d88\u6389\u5c31\u662f\u4e86) \u7531\u65bc\u8166\u888b\u56e0\u70ba\u4e00\u4e9b\u539f\u56e0\u9084\u662f\u6709\u9ede\u660f\u660f\u7684\uff0c\u689d\u4ef6\u5beb\u4e86\u597d\u5e7e\u6b21\u624d\u5beb\u5c0d\uff0c\u597d\u5728\u6c92\u6709\u5403\u5230 WA \u5c31\u662f\u4e86\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">17. Chronospatial Computer<\/h2>\n\n\n\n<p>\u53bb\u5e74\u6c92\u51fa\u7684\u62bd\u8c61\u6a5f\u5668\u984c\u51fa\u73fe\u4e86\u2014\u2014\u7d50\u679c\u8f38\u5165\u4e0d\u662f\u7d44\u5408\u8a9e\u8a00\u800c\u662f\u985e\u4f3c intcode \u7684\u6a5f\u5668\u8a9e\u8a00\u3002\u539f\u672c\u4ee5\u70ba\u4e4b\u524d\u5beb\u7684\u51fd\u5f0f\u5eab\u8981\u4e0a\u5834\u4e86\u7d50\u679c\u6c92\u7528\u5230\u3002Part 1 \u57fa\u672c\u4e0a\u5c31\u662f\u8dd1\u4e0b\u53bb\u5c31\u5c0d\u4e86\uff0c\u4f46 part 2&#8230;\u597d\u5427\uff0c\u770b\u4f86\u53c8\u662f\u4e00\u500b\u8981\u62c6\u8f38\u5165\u7684\u65e5\u5b50\u4e86\u3002<\/p>\n\n\n\n<details class=\"wp-block-inline-spoilers-block\"><summary>\u8f38\u5165\u62c6\u89e3\u6709\u5927\u96f7\u3002<\/summary>\u7c21\u55ae\u53ef\u4ee5\u770b\u5230\u57fa\u672c\u7684\u5927\u7d50\u69cb\u662f\uff1a\u628a A \u7684\u5c3e 3 bit \u653e\u5230 B\uff0cXOR \u4e0a\u4e00\u4e9b\u6578\u4e4b\u5f8c\u8f38\u51fa\u3002\u9019\u4e9b XOR \u4e0a\u53bb\u7684\u6578\u6709\u5169\u500b\u5e38\u6578\u8ddf C\uff0c\u800c C \u5247\u662f\u4ee5 A \u4e2d\u7531 B \u503c\u6c7a\u5b9a\u7684\u67d0\u4e9b bit\u3002\u56e0\u6b64\u53ef\u4ee5\u770b\u51fa\uff0c\u82e5\u8981\u8f38\u51fa\u9810\u5b9a\u7684\u6578\u503c\uff0c\u6211\u5011\u9700\u8981\u7531\u9ad8\u4f4d\u958b\u59cb\u9010\u4e00\u6c7a\u5b9a A \u6bcf\u500b 3 bit \u8981\u662f\u4ec0\u9ebc\uff0c\u800c\u9019\u5c0d\u61c9\u65bc\u5012\u904e\u4f86\u7684\u8f38\u51fa\u503c\u3002\u65bc\u662f\u6211\u53ea\u8981\u5c0d\u6bcf\u500b\u8f38\u51fa\u503c\uff0c\u8dd1\u4e00\u6b21 0 \u5230 7 \u770b\u770b\u54ea\u500b\u53ef\u4ee5\u8f38\u51fa\u6211\u8981\u7684\u5c3e\u5df4\uff0c\u5806\u4e0a\u53bb\u7d66\u4e0b\u4e00\u500b\u503c\uff0c\u4e00\u76f4\u5230\u5168\u90e8\u8655\u7406\u5b8c\u5c31\u884c\u4e86\u3002\n\n\n\n<p>\u4e0d\u904e\u539f\u672c\u6211\u5beb\u4e00\u5beb\u8dd1\u4e0b\u4f86\u767c\u73fe\u4e2d\u9593\u7adf\u7136\u7121\u89e3\uff0c\u4ed4\u7d30\u770b\u4e86\u770b\u624d\u767c\u73fe\u539f\u4f86\u56e0\u70ba C \u548c A \u6709\u95dc\uff0c\u6709\u6642\u6709\u4e9b\u8f38\u51fa\u503c\u662f\u6c92\u6709 A \u503c\u80fd\u9054\u6210\u7684\uff0c\u53e6\u5916\u4e00\u4e9b\u6642\u5019\u5247\u662f\u6703\u6709\u5f88\u591a A \u503c\u80fd\u9054\u6210\u3002\u6240\u4ee5\u6211\u5011\u5176\u5be6\u9700\u8981\u641c\u904e\u6240\u6709\u72c0\u6cc1\u624d\u884c\u3002<\/p>\n\n\n\n<p>\u4e00\u500b\u610f\u5916\u7684\u9ede\u662f\uff0c\u9019\u500b\u8f38\u5165\u7a0b\u5f0f\u5176\u5be6\u6709\u5f88\u591a\u8b8a\u5f62\u53ef\u4ee5\u7576\u505a\u8f38\u5165\u6a94\uff1a\u5169\u500b\u5e38\u6578\u7684\u503c\uff0c\u6709\u4e00\u500b\u8a08\u7b97\u4e2d\u6c92\u7528\u5230\u7684\u904b\u7b97\u5143\uff0c\u4ee5\u53ca\u7a0b\u5f0f\u7684\u6d41\u7a0b\u4e5f\u80fd\u8b8a\u5316\u3002\u7b97\u4e00\u7b97\u61c9\u8a72\u53ef\u4ee5\u6709\u5e7e\u767e\u5230\u4e0a\u5343\u7a2e\u8b8a\u5f62\u3002<\/p><\/details>\n\n\n\n<p>\u88dc\u8a18\uff1a\u9019\u5929\u6211\u7684\u67d0\u7bc7\u56de\u6587\u62ff\u5230\u4e86\u500b\u4eba reddit \u6700\u9ad8\u8b9a\u6578\u4e86\u2014\u2014\u90a3\u662f\u5728\u4e00\u7bc7\u544a\u8a34\u5927\u5bb6 JavaScript \u505a\u9019\u984c\u6703\u6709\u554f\u984c\u8981\u7528\u500b\u65b9\u6cd5\u9583\u7684\u6587\u7ae0\uff0c\u6211\u5728\u4e0b\u9762\u89e3\u91cb\u539f\u56e0\uff1a\u56e0\u70ba JavaScript \u5728\u505a\u4f4d\u5143\u904b\u7b97\u6642\u6703\u628a\u6578\u503c\u8f49\u6210 32-bit \u6574\u6578\u518d\u505a\u7684\u95dc\u4fc2\u3002\u9019\u4e00\u9ede\u6211\u89ba\u5f97\u662f Eric \u7684\u5c0f\u5931\u8aa4\uff0c\u4e0d\u904e (1) \u5982\u9019\u7bc7\u6587\u7ae0\u6240\u8aaa\u9019\u662f\u6709\u8fa6\u6cd5\u9583\u7684 (\u6700\u7c21\u55ae\u7684\u65b9\u6cd5\u662f BigInt)\uff0c(2) \u5beb\u7684\u65b9\u5f0f\u5c0d\u7684\u8a71\u5176\u5be6\u7406\u8ad6\u4e0a\u8b93\u5b83\u622a\u65b7\u5230 32-bit \u5176\u5be6\u597d\u50cf\u5f71\u97ff\u4e5f\u4e0d\u5927\u7684\u6a23\u5b50\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">18. RAM Run<\/h2>\n\n\n\n<p>\u5f88\u6709\u8da3\u7684\u4e00\u984c\u3002Part 1 \u9084\u53ea\u662f\u4e00\u822c\u7684\u5c0b\u5f91\u984c\u800c\u5df2\uff0cpart 2 \u5247\u5c31\u662f\u7e7c\u7e8c\u6253\u6389\u5730\u677f\u554f\u4ec0\u9ebc\u6642\u5019\u4e0d\u901a\u4e86\u3002\u9023\u540c\u6211\u7684\u505a\u6cd5\uff0c\u5728 DC \u7fa4\u88e1\u5df2\u7d93\u770b\u5230\u4e86\u56db\u7a2e\u4e0d\u540c\u89e3\uff1a<\/p>\n\n\n\n<details class=\"wp-block-inline-spoilers-block\"><summary>\u6211\u7684\u89e3 (\u91cd\u4f86\u6cd5)<\/summary>\u5c0b\u5f91\u5f8c\u8a18\u4e0b\u5c0b\u5230\u7684\u5f91\uff0c\u7576\u9019\u689d\u8def\u5f91\u4e0a\u6709\u584a\u5730\u677f\u88ab\u6253\u6389\u5c31\u91cd\u65b0\u5c0b\u5f91\u3002\u5f88\u6162 (-O3 \u5f8c\u5feb\u8981\u4e00\u79d2) \u4f46\u81f3\u5c11\u80fd\u904e\u3002<\/details>\n\n\n\n<details class=\"wp-block-inline-spoilers-block\"><summary>\u53e6\u89e3\u4e00 (\u5012\u9000\u6cd5)<\/summary>\u5f9e\u5168\u90e8\u6253\u5149\u7684\u72c0\u6cc1\u958b\u59cb\u5012\u8457\u6642\u9593\u8d70\uff0c\u6bcf\u6b21\u4e00\u683c\u5730\u677f\u56de\u5fa9\u5c31\u5f9e\u90a3\u683c\u5730\u677f\u5f80\u5169\u7aef\u8d70\uff0c\u90fd\u8d70\u5f97\u5230\u5c31\u662f\u901a\u4e86\u3002<\/details>\n\n\n\n<details class=\"wp-block-inline-spoilers-block\"><summary>\u53e6\u89e3\u4e8c (blame \u6cd5)<\/summary>\u4e5f\u662f\u91cd\u65b0\u5c0b\u5f91\uff0c\u4f46\u4f7f\u7528\u4e8c\u5206\u641c\u4f86\u627e\u4e0d\u901a\u7684\u90a3\u4e00\u77ac\u9593\u3002\u5927\u6982\u50cf\u662f git bisect \u90a3\u7a2e\u65b9\u5f0f\u3002<\/details>\n\n\n\n<details class=\"wp-block-inline-spoilers-block\"><summary>\u53e6\u89e3\u4e09 (\u9023\u7dda\u6cd5)<\/summary>\u7531\u65bc\u4e0d\u901a\u6642\u6240\u6709\u88ab\u6253\u6389\u7684\u5730\u65b9\u6703\u4f7f\u53f3\u4e0a\u908a\u754c\u5230\u5de6\u4e0b\u908a\u754c\u516b\u65b9\u5411\u9023\u901a\uff0c\u6240\u4ee5\u7528\u500b <a href=\"https:\/\/zh.wikipedia.org\/wiki\/%E5%B9%B6%E6%9F%A5%E9%9B%86\">\u4f75\u67e5\u96c6<\/a>\u627e\u9023\u901a\u7684\u90a3\u4e00\u77ac\u9593\u3002<\/details>\n\n\n\n<p>\u7b97\u662f\u4e00\u500b\u8db3\u5920\u6709\u8da3 (\u984c\u76ee\u65b9\u9762\u8ddf\u89e3\u6cd5\u65b9\u9762) \u7684\u984c\u76ee\u3002<\/p>\n\n\n\n<p>\u88dc\u8a18\uff1a\u5728 reddit \u4e0a\u770b\u5230\u4e86\u4e00\u500b\u53e6\u89e3\u56db\uff1a<\/p>\n\n\n\n<details class=\"wp-block-inline-spoilers-block\"><summary>\u53e6\u89e3\u56db (\u5206\u6bb5\u641c\u5c0b\u6cd5)<\/summary><a href=\"https:\/\/old.reddit.com\/r\/adventofcode\/comments\/1hgy6nb\/2024_day_18_can_you_solve_it_in_linear_time\/m2nd7mu\/\">Reddit \u539f\u6587\u5728\u6b64<\/a>\u3002\u505a\u6cd5\u662f\uff1a\u9996\u5148\u5148\u628a\u6bcf\u4e00\u683c\u5730\u677f\u4ec0\u9ebc\u6642\u5019\u6253\u6389\u8a18\u4e0b\u4f86\u3002\u6e96\u5099 k \u500b\u4f47\u5217\uff0ck \u662f\u6389\u843d\u6642\u9593\u7684\u6700\u5927\u503c\uff1b\u7136\u5f8c\u7528\u7b2c k \u500b\u4f47\u5217\u9032\u884c BFS\uff0c\u4e0d\u904e\u5728\u63a8\u9032\u4f47\u5217\u6642\uff0c\u5982\u679c\u5730\u677f\u6389\u843d\u6642\u9593\u6bd4\u76ee\u524d\u4f47\u5217\u7de8\u865f\u5c0f\u5c31\u63a8\u5230\u5c0f\u7684\u90a3\u500b\u4f47\u5217\u53bb\uff1b\u5927\u65bc\u7b49\u65bc\u76ee\u524d\u4f47\u5217\u7de8\u865f\u7684\u5c31\u7167\u820a\u63a8\u9032\u76ee\u524d\u4f47\u5217\u88e1\u3002\u7b2c k \u500b\u4f47\u5217\u7528\u5b8c\u5f80\u524d\u7528\u7b2c k-1 \u500b\u4f47\u5217\uff0c\u518d\u7528\u5b8c\u518d\u5f80\u524d\uff0c\u4f9d\u6b64\u985e\u63a8\uff0c\u76f4\u5230\u5728\u7528\u7b2c h \u500b\u4f47\u5217\u6642\u8d70\u901a\u4e86\uff0c\u90a3\u7b54\u6848\u5c31\u662f h\u3002\n\n\n\n<p>\u82e5\u5730\u677f\u7e3d\u9762\u7a4d A\uff0c\u9019\u500b\u6f14\u7b97\u6cd5\u7684\u6642\u9593\u8907\u96dc\u5ea6\u61c9\u8a72\u662f O(A)\uff0c\u56e0\u70ba\u6bcf\u500b\u5730\u677f\u53ea\u6703\u63a8\u81f3\u591a\u56db\u500b\u5176\u4ed6\u5730\u677f\uff0c\u81f3\u591a\u300c\u8d70\u300d\u4e00\u6b21\uff0c\u800c\u6389\u843d\u6642\u9593\u6700\u5927\u503c k \u986f\u7136\u662f O(A)\u3002\u4e0a\u9762\u7684\u53e6\u89e3\u4e09\u56e0\u70ba\u7528\u4e86\u4f75\u67e5\u96c6\uff0c\u5b83\u7684\u6642\u9593\u8907\u96dc\u5ea6\u662f O(A <a href=\"https:\/\/zh.wikipedia.org\/wiki\/%E9%98%BF%E5%85%8B%E6%9B%BC%E5%87%BD%E6%95%B8#%E5%8F%8D%E5%87%BD%E6%95%B8\">\u03b1<\/a>(A))\uff0c\u96e2\u7dda\u6027\u6642\u9593\u53ea\u5dee\u4e86\u90a3\u9ebc\u4e00\u4e01\u9ede\uff1b\u53e6\u89e3\u4e8c\u5247\u56e0\u70ba\u6709\u4e8c\u5206\u641c\u5c0b\uff0c\u6240\u4ee5\u662f O(A log(A))\u3002<\/p><\/details>\n\n\n\n<h2 class=\"wp-block-heading\">19. Linen Layout<\/h2>\n\n\n\n<p>\u807d\u8aaa\u9019\u984c\u662f <a href=\"https:\/\/redd.it\/1hhlgj0\">MTG \u6897\u984c<\/a>\uff1f\u56e0\u70ba\u984c\u76ee\u4e2d\u7684\u4e94\u500b\u984f\u8272\u6b63\u597d\u662f\u767d(W)\u3001\u85cd(U)\u3001\u9ed1(B)\u3001\u7d05(R)\u3001\u7da0(G)\uff0c\u9023\u9806\u5e8f\u8ddf\u4ee3\u865f\u90fd\u4e00\u6a21\u4e00\u6a23\u3002<\/p>\n\n\n\n<p>\u7e3d\u4e4b\u9019\u984c\u662f\u9817\u70ba\u666e\u901a\u7684 DP \u984c\uff0c\u5927\u6982\u662f\u90a3\u7a2e\u6559\u5b8c DP \u4e4b\u5f8c\u7684\u7df4\u7fd2\u984c\u90a3\u7a2e\u7a0b\u5ea6\u3002\u6070\u597d\u4eca\u5929\u984c\u76ee\u4e2d\u9023\u5230\u7684 2023 Day 12 \u662f\u90a3\u984c\u4e00\u7dad\u6578\u7e54\uff0c\u4e5f\u662f\u500b\u7d50\u69cb\u985e\u4f3c\u7684 DP \u984c\u3002\u6211\u5247\u662f\u5728\u5beb part 1 \u6642\u53cd\u6b63\u5c31\u9806\u4fbf\u6240\u4ee5\u628a\u7d44\u5408\u6578\u4e5f\u4e00\u8d77\u7b97\u51fa\u4f86\u4e86 (\u9084\u63d0\u65e9\u767c\u73fe\u7d44\u5408\u6578\u6703\u6ea2\u4f4d)\uff0c\u6240\u4ee5\u5169\u90e8\u4efd\u901a\u95dc\u7684\u9593\u9694\u53ea\u6709 92 \u79d2\uff0c\u7b97\u662f\u500b\u4eba\u9664\u4e86 Day 25 part 2 \u4e4b\u5916\u7684\u7d00\u9304\u4e86\u5427\uff1f<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">20. Race Condition<\/h2>\n\n\n\n<p>\u600e\u9ebc\u4eca\u5e74\u9019\u908a\u4e5f\u662f\u4e00\u5806\u4e8c\u7dad\u5c0b\u5f91\u984c&#8230;<\/p>\n\n\n\n<p>\u4e0d\u904e\u8aaa\u662f\u5c0b\u5f91\uff0c\u984c\u76ee\u90fd\u544a\u8a34\u4f60\u8def\u5f91\u662f\u4e00\u672c\u9053\u4e86\uff0c\u6240\u4ee5\u9019\u984c\u5176\u5be6\u662f\u8981\u4f60\u628a\u8def\u5f91\u6536\u96c6\u8d77\u4f86\u518d\u4f86\u505a\u8df3\u683c\u904b\u7b97\u3002\u6211\u5728 part 1 \u6642\u6c92\u641e\u61c2\u9019\u4e00\u9ede\uff0c\u6240\u4ee5\u5f04\u4e86\u4e00\u500b\u5e36\u4f5c\u5f0a\u60c5\u5f62\u7684\u72c0\u614b\u53bb\u8dd1\u5c0b\u5f91\uff0c\u60f3\u7576\u7136\u723e\u5728\u5be6\u969b\u554f\u984c\u4e0a\u5c31\u7206\u72c0\u614b\u6578\u4e86\uff1b\u6240\u4ee5\u53ea\u597d\u4e56\u4e56\u7684\u628a\u8def\u5f91\u6c42\u51fa\u4f86\u518d\u4f86\u8df3\u3002part 2 \u6539\u7bc4\u570d\u6642\u5c31\u53ea\u662f\u628a\u8df3\u683c\u7684\u7bc4\u570d\u6539\u5927\u4e00\u9ede\u800c\u5df2\u3002<\/p>\n\n\n\n<p>\u5176\u5be6 part 1 \u6642\u9084\u56e0\u70ba\u4e00\u500b\u8a9e\u610f\u554f\u984c\u641e\u6df7\u6211\u597d\u4e00\u6bb5\u6642\u9593\uff1a\u984c\u76ee\u96d6\u7136\u8aaa\u4f5c\u5f0a\u6301\u7e8c 2 \u76ae\u79d2\uff0c\u4f46\u56e0\u70ba 2 \u76ae\u79d2\u5f8c\u7684\u6240\u5728\u4f4d\u7f6e\u8981\u662f\u8def\u4e0a\uff0c\u6240\u4ee5\u5176\u5be6\u53ea\u80fd\u7a7f\u4e00\u683c\u7246\uff1b\u6211\u628a 2 \u76ae\u79d2\u7576\u6210\u53ef\u4ee5\u7a7f\u5169\u683c\u7246\u6240\u4ee5\u5be6\u4f5c\u7684\u4e82\u4e03\u516b\u7cdf\u7684&#8230;<\/p>\n\n\n\n<p>\u503c\u5f97\u4e00\u63d0\u7684\u662f\uff0c\u984c\u76ee\u525b\u51fa\u6642\u5728 part 2 \u6709\u500b\u6558\u8ff0\u662f\uff1a<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>If cheat mode is active when the end position is reached, cheat mode ends automatically.<\/p>\n<\/blockquote>\n\n\n\n<p>\u4f46\u9019\u6703\u9020\u6210\u4e00\u500b\u908a\u754c\u72c0\u6cc1\u662f\u7576\u4f5c\u5f0a\u8d77\u7d42\u9ede\u548c\u8def\u7dda\u7d42\u9ede\u5728\u540c\u4e00\u6c34\u5e73\u6216\u5782\u76f4\u7dda\u4e0a\u6642\uff0c\u6703\u56e0\u70ba\u9019\u689d\u898f\u5247\u800c\u53d6\u6d88\u76f4\u63a5\u8d70\u904e\u53bb\u7684\u90a3\u552f\u4e00\u8def\u5f91\uff0c\u6240\u4ee5\u6703\u4f7f\u8a08\u7b97\u51fa\u554f\u984c\u3002<a href=\"https:\/\/old.reddit.com\/r\/adventofcode\/comments\/1hid65a\/2024_day_20_part_2_how_to_interpret_weird_clause\/m2y14ua\/\">Eric \u8868\u793a<\/a>\u8aaa\u9019\u662f\u4e00\u500b\u6e2c\u8a66\u8005\u7d66\u4ed6\u7684\u5efa\u8b70\uff0c\u4e0d\u904e\u56e0\u70ba\u5728\u958b\u984c\u7684\u6578\u5c0f\u6642\u5167\u66ab\u6642\u9023\u7d61\u4e0d\u4e0a\u5c0d\u65b9\u7121\u6cd5\u78ba\u5b9a\u7576\u521d\u7684\u7528\u610f\uff0c\u6240\u4ee5\u4ed6\u5148\u628a\u9019\u53e5\u8a71\u62ff\u6389\u4e86\u3002\u7406\u8ad6\u4e0a\u7167\u73fe\u5728\u80fd\u904e part 2 \u7684\u4eba\u7684\u505a\u6cd5\u7684\u8a71\uff0c\u9019\u53e5\u8a71\u61c9\u8a72\u8981\u53cd\u904e\u4f86\u8aaa\u8b8a\u6210\u300c\u5728\u4f5c\u5f0a\u72c0\u614b\u4e0b\u7121\u6cd5\u5230\u9054\u7d42\u9ede\u300d\u4e4b\u985e\u7684\u5427\u3002<\/p>\n\n\n\n<p>\u88dc\u8a18\uff1a<a href=\"https:\/\/old.reddit.com\/r\/adventofcode\/comments\/1hid65a\/2024_day_20_part_2_how_to_interpret_weird_clause\/m306z4z\/\">\u8a72\u6e2c\u8a66\u8005\u51fa\u9762\u4e86<\/a> XD \u770b\u8d77\u4f86\u4ed6\u4e5f\u540c\u610f\u7528\u548c\u6211\u4e0a\u9762\u63d0\u7684\u985e\u4f3c\u7684\u8a9e\u53e5\u4f86\u6539\u52d5\uff0c\u4e0d\u904e\u53cd\u6b63\u9019\u4e00\u689d\u662f\u78ba\u5b9a\u62ff\u6389\u4e86\u6c92\u932f\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">21. Keypad Conundrum<\/h2>\n\n\n\n<p>\u770b\u5230\u984c\u76ee\u7684\u7b2c\u4e00\u5370\u8c61\uff1a\u9019\u662f <a href=\"https:\/\/store.steampowered.com\/app\/1080780\/reYal\/\">reYal<\/a> \u5427\uff1f\uff01(\u7136\u5f8c DC \u7fa4\u88e1\u7684\u53e6\u4e00\u500b\u4eba\u8aaa\u9019\u500b\u662f <a href=\"https:\/\/store.steampowered.com\/app\/1533050\/Press_Ctrl\/\">Press Ctrl<\/a> )<\/p>\n\n\n\n<p>\u7e3d\u4e4b\u5c31\u662f\u500b\u5982\u540c\u4e0a\u9762\u5169\u500b\u904a\u6232\u4e00\u822c\u64cd\u4f5c\u7684\u64cd\u4f5c\u7684\u64cd\u4f5c\u6a21\u64ec\u5668\u3002\u6211\u4e00\u958b\u59cb\u7684\u601d\u8def\u5176\u5be6\u6574\u500b\u5361\u4f4f\u4e86\uff0c\u60f3\u8457\u5f9e N \u5c64\u7684\u7d50\u679c\u4e0b\u53bb\u6c42 N+1 \u5c64\u7684\u6700\u5c0f\u503c\uff0c\u7136\u5f8c\u624d\u5149\u5169\u5c64\u800c\u5df2\u53ef\u80fd\u6027\u5c31\u958b\u59cb\u7206\u70b8\u4e86\uff0c\u66f4\u4e0d\u7528\u8aaa 25 \u5c64\u3002\u66f4\u9ebb\u7169\u7684\u9ede\u5728\u65bc\u5169\u500b\u76e4\u9762\u90fd\u6709\u4e0d\u80fd\u79fb\u5230\u7684\u683c\u5b50\uff1a\u6578\u5b57\u76e4 0 \u7684\u5de6\u908a\u548c\u65b9\u5411\u76e4\u4e0a\u7684\u5de6\u908a\u90fd\u4e0d\u80fd\u79fb\u9032\u53bb\uff0c\u518d\u52a0\u4e0a A \u9215\u4f4d\u7f6e\u7684\u4e0d\u5c0d\u7a31\u6027\uff0c\u5e7e\u4e4e\u6c92\u6709\u516c\u5f0f\u53ef\u4ee5\u5957\u3002<\/p>\n\n\n\n<p>\u5403\u4e86\u9ede\u6771\u897f\u8166\u5b50\u6bd4\u8f03\u6e05\u695a\u4e4b\u5f8c\u624d\u60f3\u901a\u600e\u9ebc\u5012\u904e\u4f86\u6c42\uff1b\u91cd\u9ede\u5728\u65bc\u6309\u4e0b\u67d0\u5c64\u7684\u4e00\u500b\u6309\u9215\u9700\u8981\u6240\u6709\u5b83\u4e0b\u9762\u7684\u5c64\u5168\u90e8\u6309 A\uff0c\u4e5f\u5c31\u662f\u6211\u5011\u7684\u5e8f\u5217\u53ef\u4ee5\u5728\u9019\u88e1\u6253\u65b7\uff0c\u524d\u9762\u505a\u5b8c\u5f8c\u4e0b\u9762\u6240\u6709\u5c64\u90fd\u5728 A \u6240\u4ee5\u6240\u6709\u63a5\u4e0b\u4f86\u7684\u79fb\u52d5\u4e5f\u90fd\u662f\u5f9e A \u958b\u59cb\u3002\u65bc\u662f\u6211\u53ef\u4ee5\u53bb\u6c42\u8b93 N \u5c64\u524d\u65b9\u5411\u9375\u76e4\u4e0a\u81ea\u67d0\u6309\u9215\u8d77\u79fb\u5230\u53e6\u4e00\u6309\u9215\u6309\u4e0b\u7684\u6b64\u5c64\u6700\u77ed\u6b65\u6578\uff0c\u7136\u5f8c\u7b2c N+1 \u5c64\u524d\u7684\u5c31\u53bb\u5217\u51fa\u4ed6\u8981\u5728\u7b2c N \u5c64\u7684\u6309\u6cd5\u6709\u591a\u5c11\uff0c\u54ea\u4e00\u500b\u7e3d\u9577\u5ea6\u662f\u6700\u77ed\u7684\u8a18\u4e0b\u4f86\u3002\u4e5f\u5c31\u662f\u984c\u76ee\u8b8a\u6210\u4e00\u6b21 25 \u683c\u7684\u5927 DP \u4e86\u3002\u6700\u5f8c\u4e00\u5c64\u7684\u6578\u5b57\u9375\u5247\u4e00\u6a23\u5217\u51fa\u5728\u5176\u524d\u4e00\u5c64\u6709\u54ea\u4e9b\u6309\u6cd5\uff0c\u53bb\u6c42\u7e3d\u9577\u5ea6\u6700\u77ed\u5c31\u662f\u7b54\u6848\u4e86\u3002<\/p>\n\n\n\n<p>\u6700\u7d42\u6211\u901a\u95dc\u6642\u9593\u662f\u958b\u984c\u5f8c\u56db\u500b\u534a\u5c0f\u6642\uff0c\u4f46 part 2 \u7684\u5168\u7403\u540d\u6b21\u624d\u5feb 2000 \u4eba&#8230;\u9019\u984c\u679c\u7136\u5920\u96e3\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">22. Monkey Market<\/h2>\n\n\n\n<p>\u54ce\u5440\uff0c\u90a3\u4e9b\u5927\u6578\u7334\u5b50\u53c8\u56de\u4f86\u4e86 XD \u4eca\u5929\u7684\u984c\u76ee\uff0cpart 1 \u662f\u64ec\u96a8\u6a5f\u6578\u6a21\u64ec\u9019\u500b\u6c92\u4ec0\u9ebc\u597d\u8aaa\u7684\uff0c\u4f46 part 2 \u8b8a\u6210\u770b\u9019\u4e9b\u64ec\u96a8\u6a5f\u6578\u51fa\u7684\u8da8\u52e2\u8ce3<s>\u80a1\u7968<\/s>\u85cf\u8eab\u8655\u4e86\u3002\u8aaa\u5be6\u5728\u8a71\u5fc3\u60c5\u6709\u9ede\u5fae\u5999\u7684\u8907\u96dc\uff1a\u56e0\u70ba\u6700\u8fd1\u5de5\u4f5c\u4e0a\u5728\u505a\u7684\u5c08\u6848\u548c\u9019\u500b\u6709\u64e6\u4e0a\u4e86\u500b\u90a3\u9ebc\u4e00\u9ede\u9ede\u95dc\u4fc2\u3002\u561b\u7e3d\u4e4b\uff0c\u5728\u7522\u751f\u50f9\u683c\u5f8c\u6ed1\u52d5\u6c42\u51fa\u6700\u8fd1\u56db\u500b\u8b8a\u5316\u91cf\u7684\u7d44\u5408\uff0c\u7136\u5f8c\u4e1f\u53bb\u4e00\u500b\u9663\u5217\u5132\u5b58\u8aaa\u6709\u6c92\u6709\u770b\u904e\u9019\u500b\u7d44\u5408\uff0c\u6709\u5c31\u628a\u5c0d\u61c9\u50f9\u683c\u52a0\u9032\u53bb\uff0c\u6700\u5f8c\u518d\u6383\u4e00\u6b21\u5168\u90e8\u7684\u7d44\u5408\u72c0\u6cc1\u627e\u51fa\u7e3d\u8ce3\u50f9\u7684\u6700\u5927\u503c\u3002<\/p>\n\n\n\n<p>\u4e0d\u904e\u5728\u6628\u5929\u9019\u9ebc\u91cd\u91cf\u7d1a\u7684\u4e00\u984c\u4e4b\u5f8c\uff0c\u4eca\u5929\u5247\u53ea\u662f\u55ae\u7d14\u7684\u5927\u91cf\u6a21\u64ec\u984c\uff0c\u6700\u5f8c\u5169\u5929\u96e3\u5ea6\u6216\u8a31\u53ef\u80fd\u7e7c\u7e8c\u505c\u5728\u9019\u500b\u7a0b\u5ea6\uff1f<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">23.&nbsp;LAN Party<\/h2>\n\n\n\n<p>\u6211\u731c\u932f\u4e86&#8230;\u679c\u7136\u6709\u5927\u70b8\u5f48\u5728\u6700\u5f8c\u3002<\/p>\n\n\n\n<p>\u4eca\u5929\u7684\u984c\u76ee\u5f88\u55ae\u7d14\u7684\u7d66\u4f60\u4e00\u500b\u5716\u3002Part 1 \u53ea\u662f\u6c42\u51fa\u6240\u6709\u7684 K<sub>3<\/sub> \u5b50\u5716\uff0c\u7136\u5f8c\u554f\u9019\u4e9b\u5b50\u5716\u4e2d\u6709\u54ea\u4e9b\u5305\u542b\u67d0\u4e00\u7fa4\u7bc0\u9ede\uff1bpart 2 \u5c31\u662f\u5927\u70b8\u5f48\u4e86\uff1a\u8981\u4f60\u6c42\u9019\u5716\u7684<a href=\"https:\/\/en.wikipedia.org\/wiki\/Clique_problem\" data-type=\"link\" data-id=\"https:\/\/en.wikipedia.org\/wiki\/Clique_problem\">\u6700\u5927\u5718<\/a>\u2014\u2014\u6c92\u932f\uff0c\u6211\u5011\u53c8\u6709\u4e00\u984c NP-Complete \u984c\u76ee\u4e86\u3002\u9451\u65bc\u6211\u8166\u5b50\u88e1\u6c92\u6709\u8a18\u904e\u6709\u4ec0\u9ebc\u6f14\u7b97\u6cd5\u53ef\u4ee5\u7528\uff0c\u53ea\u597d\u5728\u7dad\u57fa\u767e\u79d1\u4e0a\u627e\u4e00\u627e\uff0c\u7136\u5f8c\u627e\u5230\u4e86 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Bron%E2%80%93Kerbosch_algorithm\">Bron-Kerbosch \u6f14\u7b97\u6cd5<\/a>\u53ef\u4ee5\u5217\u51fa\u6240\u6709\u6975\u5927\u5718\u3002\u628a\u6709 pivot \u7684\u7248\u672c\u5be6\u4f5c\u8d77\u4f86\u8dd1\u9084\u7b97\u6eff\u5feb\u7684\uff0c\u5b83\u627e\u5230\u7684\u6975\u5927\u5718\u518d\u53bb\u6bd4\u8f03\u5718\u7684\u5927\u5c0f\u627e\u6700\u5927\u7684\u5718\u8f38\u51fa\u5c31\u884c\u4e86\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">24. Crossed Wires<\/h2>\n\n\n\n<p>\u6211\u53c8\u731c\u932f\u4e86\uff0c\u4f46\u4e0d\u5f97\u4e0d\u8aaa\u9019\u984c\u96d6\u7136\u4e5f\u662f\u91cd\u984c\uff0c\u4f46\u91cd\u5f97\u5f88\u525b\u597d\u3002<\/p>\n\n\n\n<p>Part 1 \u5c31\u662f\u4e4b\u524d\u4e5f\u51fa\u904e\u7684\u908f\u8f2f\u9598\u6a21\u64ec\u984c\uff0c\u4f46 part 2 \u5c31\u6709\u8da3\u4e86\uff1a\u5b83\u544a\u8a34\u6211\u5011\u9019\u4efd\u8f38\u5165\u662f\u500b N \u4f4d\u5143\u7684\u52a0\u6cd5\u5668\u7dda\u8def (\u4e8b\u5be6\u4e0a\u5b83\u662f\u6240\u8b02\u7684<a href=\"https:\/\/zh.wikipedia.org\/wiki\/%E5%8A%A0%E6%B3%95%E5%99%A8#%E6%B3%A2%E7%BA%B9%E8%BF%9B%E4%BD%8D%E5%8A%A0%E6%B3%95%E5%99%A8%EF%BC%88%E8%84%89%E5%8A%A8%E8%BF%9B%E4%BD%8D%E5%8A%A0%E6%B3%95%E5%99%A8%EF%BC%89\">\u6ce2\u7d0b\u9032\u4f4d\u52a0\u6cd5\u5668<\/a>\uff0c\u57fa\u672c\u4e0a\u8ddf\u624b\u7b97\u7d50\u69cb\u4e00\u6a23\u7684\u90a3\u4e00\u7a2e)\uff0c\u4f46\u5176\u4e2d\u6709\u56db\u5c0d\u8f38\u51fa\u63a5\u932f\u4e86\uff0c\u8981\u6211\u5011\u627e\u51fa\u9019\u56db\u5c0d\u3002\u9019\u662f\u500b\u628a\u7dda\u8def\u5716\u756b\u51fa\u4f86\u7528\u773c\u775b\u770b\u6bd4\u7528\u7a0b\u5f0f\u53bb\u627e\u9084\u5bb9\u6613\u7684\u984c\u76ee\u3002\u800c\u4e14\u9019\u984c\u51fa\u7684\u5f88\u4f5b\uff0c\u63a5\u932f\u7684\u9ede\u90fd\u53ea\u9650\u5b9a\u5728\u55ae\u4e00\u500b\u4f4d\u5143\u7684\u5168\u52a0\u5668\u88e1\u9762\uff0c\u6c92\u6709\u8de8\u4f4d\u5143\u7684\u63a5\u932f\u9ede\u3002(\u6709\u7684\u8a71\u9084\u6eff\u6709\u53ef\u80fd\u6703\u63a5\u6210\u8ff4\u5708\uff0c\u90a3\u5c31\u9ebb\u7169\u4e86)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">25. Code Chronicle<\/h2>\n\n\n\n<p>\u7167\u4f8b\u7684 25 \u865f\u984c\u662f\u7c21\u55ae\u6536\u5c3e\u984c\u3002\u70ba\u4e86\u9996\u5c3e\u547c\u61c9 (\uff1f)\uff0c\u96d6\u7136\u7c21\u55ae\u5beb\u904e\u53bb\u904e\u4e86\u4f46\u9084\u662f\u6539\u4e86\u4e00\u500b\u7528\u4e86 <code>inner_product<\/code> \u7684\u7248\u672c\uff0c\u500b\u4eba\u611f\u89ba\u9084\u7b97\u4e0d\u8cf4\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u5e74\u5ea6\u611f\u60f3<\/h2>\n\n\n\n<p>\u7d50\u679c 25 26 \u865f\u5169\u5929\u56e0\u70ba\u516c\u53f8\u7684\u4e8b\u60c5\u5fd9\u7ffb\u4e86&#8230;<\/p>\n\n\n\n<p>\u4eca\u5e74\u53ef\u4ee5\u770b\u5230\u524d\u9762\u7684\u554f\u984c\u96e3\u5ea6\u5206\u5e03\u6c92\u6709\u53bb\u5e74\u90a3\u9ebc\u5947\u602a\u4e86\u3002\u9019\u5176\u5be6\u66f4\u52a0\u6df1\u4e86\u6211\u53bb\u5e74\u7684\u63a8\u6e2c\uff1a\u53bb\u5e74\u7684\u984c\u76ee\u662f\u8003\u616e\u5230 AI \u5c0d\u7b56\u7684\u51fa\u984c\u6cd5\u3002\u4eca\u5e74\u53ef\u4ee5\u770b\u5230\u524d\u5e7e\u984c\u4e26\u6c92\u6709\u50cf\u53bb\u5e74\u90a3\u6a23\u7279\u5225\u8457\u91cd\u5728\u5b57\u4e32\u8655\u7406\u53ca\u5f9e\u96dc\u8a0a\u4e2d\u62c6\u51fa\u8cc7\u6599\u4f86\uff1b\u73fe\u5728\u60f3\u60f3\u9019\u7a2e\u984c\u76ee\u53ef\u80fd\u6839\u672c\u6c92\u6709\u6e2c\u8a66\u5230\u6df1\u5ea6\u7db2\u8def\u5c0d\u96dc\u8a0a\u7684\u8655\u7406\u80fd\u529b\uff0c\u56e0\u70ba\u90a3\u4e9b\u90fd\u5728\u524d\u8655\u7406\u6642\u88ab tokenization \u7d66\u505a\u6389\u4e86\u3002<\/p>\n\n\n\n<p>\u53e6\u4e00\u500b\u50be\u5411\u5247\u8ddf Everybody Code \u4e00\u6a23\uff1a\u4e8c\u7dad\u5730\u5716\u5f0f\u984c\u76ee\u6bd4\u4f8b\u4e0a\u5347\u4e86\u3002\u9019\u4e00\u500b\u61c9\u8a72\u624d\u662f\u6bd4\u8f03\u6709\u6548\u4e00\u9ede\u7684 AI \u5c0d\u7b56\uff1a\u5982\u679c\u540c\u6a23\u8003\u616e\u5230 tokenization \u7684\u8a71\uff0c\u4e8c\u7dad\u5730\u5716\u8981\u561b\u6703\u8b8a\u6210\u6bcf\u5217\u4e00\u500b token\uff0c\u8981\u561b\u6703\u8b8a\u6210\u6bcf\u5b57\u4e00\u500b token\uff0c\u5169\u8005\u90fd\u662f\u5c0d AI \u4e0d\u5229\u7684\u7d50\u679c\uff1a\u524d\u8005 token \u592a\u96dc\uff0c\u5f8c\u8005 token \u592a\u591a\u3002<\/p>\n\n\n\n<p>\u4e0d\u904e\u5c31\u7b97\u4e0d\u7ba1 AI\uff0c\u4eca\u5e74\u7684\u984c\u76ee\u76f8\u5c0d\u904e\u53bb\u6578\u5e74\u6bd4\u8d77\u4f86\u78ba\u5be6\u662f\u504f\u7c21\u55ae\u4e86\u4e00\u9ede\u3002\u5c31\u7b97\u662f Day 23 \u7684 NP-Complete \u984c\u4e5f\u4e0d\u662f\u96e3\u9ede\uff1a\u7d66\u5b9a\u7684\u8f38\u5165\u76f8\u5c0d\u65bc\u7e3d\u5927\u5c0f\u4e26\u4e0d\u5927\uff0c\u56e0\u6b64\u5373\u4f7f\u4e0d\u90a3\u9ebc\u6158\u7684\u666e\u901a\u6307\u6578\u6642\u9593\u4e5f\u662f\u80fd\u5920\u8dd1\u5f97\u5b8c\u7684\u3002\u53cd\u904e\u4f86\u8aaa\uff0c\u96e3\u984c\u90fd\u662f\u4e00\u4e9b\u601d\u8003\u6703\u6253\u7d50\u7684\u984c\u76ee\uff1aDay 21 \u64cd\u4f5c\u7684\u64cd\u4f5c\u7684\u64cd\u4f5c\u6a21\u64ec\u5668\u3001Day 18 \u52d5\u614b\u5c0b\u5f91\u3001Day 24 \u96fb\u8def\u9664\u932f\u3001\u751a\u81f3 Day 12 \u6c42\u591a\u908a\u5f62\u908a\u6578\u548c Day 14 \u7684\u5c0b\u627e\u8056\u8a95\u6a39\u90fd\u662f\u9019\u7a2e\u985e\u578b\uff0c\u6703\u8981\u4f60\u4e0d\u53ea\u6703\u904b\u7528\u8cc7\u6599\u7d50\u69cb\u6f14\u7b97\u6cd5\uff0c\u66f4\u8981\u80fd\u5920\u6709\u6548\u61c9\u7528\u5b83\u5011\u624d\u80fd\u89e3\u984c\u3002\u6211\u60f3\u9019\u61c9\u8a72\u662f Advent of Code \u63a5\u4e0b\u4f86\u7684\u8da8\u52e2\uff1a\u4e2d\u7b49\u96e3\u5ea6\u7684\u984c\u76ee\u4ee5\u5f8c\u53ef\u80fd\u6703\u51fa\u73fe\u66f4\u591a\u9019\u7a2e\u9700\u8981\u5275\u610f\u601d\u8003\u7684\u984c\u578b\uff0c\u4e5f\u5c31\u662f\u984c\u76ee\u4e0d\u6703\u8b8a\u300c\u96e3\u300d\uff0c\u4f46\u6703\u8b8a\u300c\u602a\u300d\uff0c\u800c\u8981\u600e\u9ebc\u89e3\u6c7a\u9019\u7a2e\u300c\u602a\u300d\u554f\u984c\u5c07\u6703\u662f\u63a5\u4e0b\u4f86\u7684\u91cd\u9ede\u3002\u6211\u662f\u6eff\u6a02\u898b\u9019\u6a23\u7684\u6539\u8b8a\u5c31\u662f\u4e86\u3002<\/p>\n\n\n\n<p>\u90a3\u9ebc\u6700\u5f8c\u5c31\u9023\u7d50 <a href=\"https:\/\/redd.it\/1hly9dw\">Eric \u5728 reddit \u4e0a\u7684\u611f\u8b1d\u6587<\/a>\uff0c\u4e5f\u9806\u4fbf\u5f15\u7528\u4ed6\u6587\u88e1\u9019\u53e5\u8a71\u4f5c\u7d50\u5427\uff1a<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Did the puzzles make you think? Did you try a new language? Are you new to programming? Are you a better programmer now than you were 25 days ago? I hope so.<br>&#8212; Eric Wastl on reddit after 2024 Advent of Code<\/p>\n<\/blockquote>\n\n\n\n<p>\u660e\u5e74\u518d\u898b\uff01<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u8a3b\u8173<\/h2>\n\n\n<ol class=\"wp-block-footnotes\"><li id=\"66d9438a-f4ec-4965-baa7-076194fb02d5\">\u6709\u4eba\u7528\u4e86\u9ede\u6578\u5b78\u52a0\u4e0a\u5be6\u969b\u5beb\u7a0b\u5f0f\u8a08\u7b97\u904e\uff0cDay 11 \u9019\u984c\u7684\u6536\u6582\u96c6\u5927\u5c0f\u7d04\u6709\u56db\u5343\u500b\u6578\u5b57\uff0c\u986f\u7136\u6a21\u64ec 75 \u8f2a\u7528\u9019\u7a2e\u5927\u5230\u96e2\u8b5c\u7684\u77e9\u9663\u4e58\u6cd5\u4f86\u505a\u662f\u81ea\u627e\u9ebb\u7169\u3002 <a href=\"#66d9438a-f4ec-4965-baa7-076194fb02d5-link\" aria-label=\"\u8fd4\u56de\u8a3b\u8173\u53c3\u7167 1\">\u21a9\ufe0e<\/a><\/li><\/ol>","protected":false},"excerpt":{"rendered":"<p>\u4e00\u5e74\u4e00\u5ea6\u7684 Advent of Code \u53c8\u4f86\u4e86\uff0c\u61c9\u8a72\u4e0d\u9700\u8981\u591a\u8aaa\u4e86\u5427\u3002 \u9019\u88e1\u5c31\u4f86\u9806\u4fbf\u66f4\u65b0\u4e00\u4e0b\u6211\u7684\u8fd1\u6cc1\u597d\u4e86\u3002\u6700\u8fd1 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"[{\"content\":\"\u6709\u4eba\u7528\u4e86\u9ede\u6578\u5b78\u52a0\u4e0a\u5be6\u969b\u5beb\u7a0b\u5f0f\u8a08\u7b97\u904e\uff0cDay 11 \u9019\u984c\u7684\u6536\u6582\u96c6\u5927\u5c0f\u7d04\u6709\u56db\u5343\u500b\u6578\u5b57\uff0c\u986f\u7136\u6a21\u64ec 75 \u8f2a\u7528\u9019\u7a2e\u5927\u5230\u96e2\u8b5c\u7684\u77e9\u9663\u4e58\u6cd5\u4f86\u505a\u662f\u81ea\u627e\u9ebb\u7169\u3002\",\"id\":\"66d9438a-f4ec-4965-baa7-076194fb02d5\"}]"},"categories":[51,4],"tags":[31],"class_list":["post-1831","post","type-post","status-publish","format-standard","hentry","category-aoclike","category-programming","tag-advent-of-code"],"_links":{"self":[{"href":"https:\/\/blog.cruciferslab.net\/index.php?rest_route=\/wp\/v2\/posts\/1831","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.cruciferslab.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.cruciferslab.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.cruciferslab.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.cruciferslab.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1831"}],"version-history":[{"count":89,"href":"https:\/\/blog.cruciferslab.net\/index.php?rest_route=\/wp\/v2\/posts\/1831\/revisions"}],"predecessor-version":[{"id":2216,"href":"https:\/\/blog.cruciferslab.net\/index.php?rest_route=\/wp\/v2\/posts\/1831\/revisions\/2216"}],"wp:attachment":[{"href":"https:\/\/blog.cruciferslab.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1831"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.cruciferslab.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1831"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.cruciferslab.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1831"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}