[{"data":1,"prerenderedAt":10780},["ShallowReactive",2],{"archive-posts":3},[4,2860,7344,7865,8001,8054,10332,10362,10392,10609,10709,10738],{"id":5,"title":6,"body":7,"category":2848,"cover":2849,"coverAlt":2850,"date":2851,"description":2852,"extension":2853,"meta":2854,"navigation":61,"path":2855,"pinned":2856,"seo":2857,"stem":2858,"__hash__":2859},"posts/posts/cppbagu.md","手搓之C++工程系列",{"type":8,"value":9,"toc":2834},"minimark",[10,14,17,22,25,663,666,668,671,675,1234,1237,1839,1841,1844,1847,2211,2214,2611,2613,2616,2619,2830],[11,12,13],"p",{},"还是栽在一些面试八股题上了，给我算法题还好，写个小模板就能唬住一些没打过竞赛的面试官。但是让我写工程类题目（手搓智能指针、LRU、多线程消费）我就有点头疼，一个是一个C++工程里最多用一次这种玩意，另一个是我写C++工程也少，在这里整理一下常见的C++八股工程。",[15,16],"hr",{},[18,19,21],"h2",{"id":20},"lru缓存","LRU缓存",[11,23,24],{},"以下是一个存储int为键、int为值的LRU缓存实现。",[26,27,32],"pre",{"className":28,"code":29,"language":30,"meta":31,"style":31},"language-cpp shiki shiki-themes one-dark-pro one-dark-pro min-light","#include \u003Clist>\n#include \u003Cunordered_map>\n\nusing namespace std;\n\nclass LRUCache {\npublic:\n    LRUCache(int capacity) : cap_(capacity) {}\n\n    int get(int key) {\n        auto it = mp_.find(key);\n        if (it == mp_.end()) return -1;\n\n        // splice 意为“绞接”\n        lst_.splice(lst_.begin(), lst_, it->second);\n        return it->second->second;\n    }\n\n    void put(int key, int value) {\n        auto it = mp_.find(key);\n        if (it != mp_.end()) {\n            it->second->second = value;\n            lst_.splice(lst_.begin(), lst_, it->second);\n            return;\n        }\n\n        if ((int)lst_.size() == cap_) {\n            int old_key = lst_.back().first;\n            mp_.erase(old_key);\n            lst_.pop_back();\n        }\n\n        lst_.push_front({key, value});\n        mp_[key] = lst_.begin();\n    }\n\nprivate:\n    int cap_;\n    list\u003Cpair\u003Cint,int>> lst_; \n    unordered_map\u003Cint, list\u003Cpair\u003Cint,int>>::iterator> mp_;\n};\n","cpp","",[33,34,35,48,56,63,80,85,98,108,138,143,162,187,221,226,233,278,296,302,307,332,349,368,388,422,430,436,441,469,496,510,523,528,533,551,570,575,580,588,596,619,657],"code",{"__ignoreMap":31},[36,37,40,44],"span",{"class":38,"line":39},"line",1,[36,41,43],{"class":42},"sSCA1","#include",[36,45,47],{"class":46},"sZaK-"," \u003Clist>\n",[36,49,51,53],{"class":38,"line":50},2,[36,52,43],{"class":42},[36,54,55],{"class":46}," \u003Cunordered_map>\n",[36,57,59],{"class":38,"line":58},3,[36,60,62],{"emptyLinePlaceholder":61},true,"\n",[36,64,66,69,72,76],{"class":38,"line":65},4,[36,67,68],{"class":42},"using",[36,70,71],{"class":42}," namespace",[36,73,75],{"class":74},"svpSI"," std",[36,77,79],{"class":78},"s0bQm",";\n",[36,81,83],{"class":38,"line":82},5,[36,84,62],{"emptyLinePlaceholder":61},[36,86,88,91,95],{"class":38,"line":87},6,[36,89,90],{"class":42},"class",[36,92,94],{"class":93},"s1pBA"," LRUCache",[36,96,97],{"class":78}," {\n",[36,99,101,104],{"class":38,"line":100},7,[36,102,103],{"class":42},"public",[36,105,107],{"class":106},"svaOe",":\n",[36,109,111,115,118,121,125,128,132,135],{"class":38,"line":110},8,[36,112,114],{"class":113},"slNdt","    LRUCache",[36,116,117],{"class":78},"(",[36,119,120],{"class":42},"int",[36,122,124],{"class":123},"sQkFB"," capacity",[36,126,127],{"class":78},") ",[36,129,131],{"class":130},"s2dl9",":",[36,133,134],{"class":113}," cap_",[36,136,137],{"class":78},"(capacity) {}\n",[36,139,141],{"class":38,"line":140},9,[36,142,62],{"emptyLinePlaceholder":61},[36,144,146,149,152,154,156,159],{"class":38,"line":145},10,[36,147,148],{"class":42},"    int",[36,150,151],{"class":113}," get",[36,153,117],{"class":78},[36,155,120],{"class":42},[36,157,158],{"class":123}," key",[36,160,161],{"class":78},") {\n",[36,163,165,168,171,174,178,181,184],{"class":38,"line":164},11,[36,166,167],{"class":42},"        auto",[36,169,170],{"class":78}," it ",[36,172,173],{"class":42},"=",[36,175,177],{"class":176},"sIhaf"," mp_",[36,179,180],{"class":130},".",[36,182,183],{"class":113},"find",[36,185,186],{"class":78},"(key);\n",[36,188,190,193,196,199,201,203,206,209,212,215,219],{"class":38,"line":189},12,[36,191,192],{"class":42},"        if",[36,194,195],{"class":78}," (it ",[36,197,198],{"class":42},"==",[36,200,177],{"class":176},[36,202,180],{"class":130},[36,204,205],{"class":113},"end",[36,207,208],{"class":78},"()) ",[36,210,211],{"class":42},"return",[36,213,214],{"class":42}," -",[36,216,218],{"class":217},"sWEYk","1",[36,220,79],{"class":78},[36,222,224],{"class":38,"line":223},13,[36,225,62],{"emptyLinePlaceholder":61},[36,227,229],{"class":38,"line":228},14,[36,230,232],{"class":231},"sU3lX","        // splice 意为“绞接”\n",[36,234,236,239,241,244,246,249,251,254,257,260,263,265,268,271,275],{"class":38,"line":235},15,[36,237,238],{"class":176},"        lst_",[36,240,180],{"class":130},[36,242,243],{"class":113},"splice",[36,245,117],{"class":78},[36,247,248],{"class":176},"lst_",[36,250,180],{"class":130},[36,252,253],{"class":113},"begin",[36,255,256],{"class":78},"()",[36,258,259],{"class":130},",",[36,261,262],{"class":78}," lst_",[36,264,259],{"class":130},[36,266,267],{"class":176}," it",[36,269,270],{"class":130},"->",[36,272,274],{"class":273},"sBPOt","second",[36,276,277],{"class":78},");\n",[36,279,281,284,286,288,290,292,294],{"class":38,"line":280},16,[36,282,283],{"class":42},"        return",[36,285,267],{"class":176},[36,287,270],{"class":130},[36,289,274],{"class":176},[36,291,270],{"class":130},[36,293,274],{"class":273},[36,295,79],{"class":78},[36,297,299],{"class":38,"line":298},17,[36,300,301],{"class":78},"    }\n",[36,303,305],{"class":38,"line":304},18,[36,306,62],{"emptyLinePlaceholder":61},[36,308,310,313,316,318,320,322,324,327,330],{"class":38,"line":309},19,[36,311,312],{"class":42},"    void",[36,314,315],{"class":113}," put",[36,317,117],{"class":78},[36,319,120],{"class":42},[36,321,158],{"class":123},[36,323,259],{"class":130},[36,325,326],{"class":42}," int",[36,328,329],{"class":123}," value",[36,331,161],{"class":78},[36,333,335,337,339,341,343,345,347],{"class":38,"line":334},20,[36,336,167],{"class":42},[36,338,170],{"class":78},[36,340,173],{"class":42},[36,342,177],{"class":176},[36,344,180],{"class":130},[36,346,183],{"class":113},[36,348,186],{"class":78},[36,350,352,354,356,359,361,363,365],{"class":38,"line":351},21,[36,353,192],{"class":42},[36,355,195],{"class":78},[36,357,358],{"class":42},"!=",[36,360,177],{"class":176},[36,362,180],{"class":130},[36,364,205],{"class":113},[36,366,367],{"class":78},"()) {\n",[36,369,371,374,376,378,380,382,385],{"class":38,"line":370},22,[36,372,373],{"class":176},"            it",[36,375,270],{"class":130},[36,377,274],{"class":176},[36,379,270],{"class":130},[36,381,274],{"class":273},[36,383,384],{"class":42}," =",[36,386,387],{"class":78}," value;\n",[36,389,391,394,396,398,400,402,404,406,408,410,412,414,416,418,420],{"class":38,"line":390},23,[36,392,393],{"class":176},"            lst_",[36,395,180],{"class":130},[36,397,243],{"class":113},[36,399,117],{"class":78},[36,401,248],{"class":176},[36,403,180],{"class":130},[36,405,253],{"class":113},[36,407,256],{"class":78},[36,409,259],{"class":130},[36,411,262],{"class":78},[36,413,259],{"class":130},[36,415,267],{"class":176},[36,417,270],{"class":130},[36,419,274],{"class":273},[36,421,277],{"class":78},[36,423,425,428],{"class":38,"line":424},24,[36,426,427],{"class":42},"            return",[36,429,79],{"class":78},[36,431,433],{"class":38,"line":432},25,[36,434,435],{"class":78},"        }\n",[36,437,439],{"class":38,"line":438},26,[36,440,62],{"emptyLinePlaceholder":61},[36,442,444,446,449,451,454,456,458,461,464,466],{"class":38,"line":443},27,[36,445,192],{"class":42},[36,447,448],{"class":78}," ((",[36,450,120],{"class":42},[36,452,453],{"class":78},")",[36,455,248],{"class":176},[36,457,180],{"class":130},[36,459,460],{"class":113},"size",[36,462,463],{"class":78},"() ",[36,465,198],{"class":42},[36,467,468],{"class":78}," cap_) {\n",[36,470,472,475,478,480,482,484,487,489,491,494],{"class":38,"line":471},28,[36,473,474],{"class":42},"            int",[36,476,477],{"class":78}," old_key ",[36,479,173],{"class":42},[36,481,262],{"class":176},[36,483,180],{"class":130},[36,485,486],{"class":113},"back",[36,488,256],{"class":78},[36,490,180],{"class":130},[36,492,493],{"class":273},"first",[36,495,79],{"class":78},[36,497,499,502,504,507],{"class":38,"line":498},29,[36,500,501],{"class":176},"            mp_",[36,503,180],{"class":130},[36,505,506],{"class":113},"erase",[36,508,509],{"class":78},"(old_key);\n",[36,511,513,515,517,520],{"class":38,"line":512},30,[36,514,393],{"class":176},[36,516,180],{"class":130},[36,518,519],{"class":113},"pop_back",[36,521,522],{"class":78},"();\n",[36,524,526],{"class":38,"line":525},31,[36,527,435],{"class":78},[36,529,531],{"class":38,"line":530},32,[36,532,62],{"emptyLinePlaceholder":61},[36,534,536,538,540,543,546,548],{"class":38,"line":535},33,[36,537,238],{"class":176},[36,539,180],{"class":130},[36,541,542],{"class":113},"push_front",[36,544,545],{"class":78},"({key",[36,547,259],{"class":130},[36,549,550],{"class":78}," value});\n",[36,552,554,557,560,562,564,566,568],{"class":38,"line":553},34,[36,555,556],{"class":176},"        mp_",[36,558,559],{"class":78},"[key] ",[36,561,173],{"class":42},[36,563,262],{"class":176},[36,565,180],{"class":130},[36,567,253],{"class":113},[36,569,522],{"class":78},[36,571,573],{"class":38,"line":572},35,[36,574,301],{"class":78},[36,576,578],{"class":38,"line":577},36,[36,579,62],{"emptyLinePlaceholder":61},[36,581,583,586],{"class":38,"line":582},37,[36,584,585],{"class":42},"private",[36,587,107],{"class":106},[36,589,591,593],{"class":38,"line":590},38,[36,592,148],{"class":42},[36,594,595],{"class":78}," cap_;\n",[36,597,599,602,605,608,611,613,616],{"class":38,"line":598},39,[36,600,601],{"class":78},"    list",[36,603,604],{"class":42},"\u003C",[36,606,607],{"class":78},"pair",[36,609,610],{"class":42},"\u003Cint",[36,612,259],{"class":130},[36,614,615],{"class":42},"int>>",[36,617,618],{"class":78}," lst_; \n",[36,620,622,625,627,629,632,634,636,638,640,642,645,648,651,654],{"class":38,"line":621},40,[36,623,624],{"class":78},"    unordered_map",[36,626,610],{"class":42},[36,628,259],{"class":130},[36,630,631],{"class":78}," list\u003C",[36,633,607],{"class":93},[36,635,604],{"class":78},[36,637,120],{"class":42},[36,639,259],{"class":130},[36,641,120],{"class":42},[36,643,644],{"class":78},">>",[36,646,647],{"class":130},"::",[36,649,650],{"class":78},"iterator",[36,652,653],{"class":42},">",[36,655,656],{"class":78}," mp_;\n",[36,658,660],{"class":38,"line":659},41,[36,661,662],{"class":78},"};\n",[11,664,665],{},"感觉说白了出这个题就是面试官想挂人，没想到我考场上搓出来了，哈哈。",[15,667],{},[18,669,670],{"id":670},"智能指针",[672,673,674],"h3",{"id":674},"unique_ptr",[26,676,678],{"className":28,"code":677,"language":30,"meta":31,"style":31},"template \u003Ctypename T>\nclass UniquePtr {\npublic:\n    // 构造：接管裸指针\n    explicit UniquePtr(T* ptr = nullptr) : ptr_(ptr) {}\n\n    ~UniquePtr() {delete ptr_;}\n\n    // 禁止拷贝：防止多个指针同时拥有同一资源\n    UniquePtr(const UniquePtr&) = delete;\n    UniquePtr& operator=(const UniquePtr&) = delete;\n\n    // 允许移动：转移所有权，noexcept保证扩容等场景不会fallback到拷贝\n    UniquePtr(UniquePtr&& other) noexcept : ptr_(other.ptr_) {\n        other.ptr_ = nullptr;  \n    }\n\n    UniquePtr& operator=(UniquePtr&& other) noexcept {\n        if (this != &other) {\n            delete ptr_;        // ★ 先释放自己原来的资源\n            ptr_ = other.ptr_;\n            other.ptr_ = nullptr;\n        }\n        return *this;\n    }\n\n    // 解引用\n    T& operator*() const { return *ptr_; }\n    T* operator->() const { return ptr_; }\n    T* get() const { return ptr_; }\n\n    // 释放所有权，返回裸指针（调用者负责 delete）\n    T* release() {\n        T* tmp = ptr_;\n        ptr_ = nullptr;\n        return tmp;\n    }\n\n    // 重置指针\n    void reset(T* ptr = nullptr) {\n        if (ptr_ != ptr) {\n            delete ptr_;\n            ptr_ = ptr;\n        }\n    }\n\n\n\nprivate:\n    T* ptr_;\n};\n",[33,679,680,697,706,712,717,750,754,768,772,777,801,827,831,836,874,890,894,898,920,940,951,966,981,985,996,1000,1004,1009,1033,1053,1071,1075,1080,1092,1107,1118,1125,1129,1133,1138,1159,1171,1178,1188,1193,1198,1203,1208,1213,1220,1229],{"__ignoreMap":31},[36,681,682,685,688,691,694],{"class":38,"line":39},[36,683,684],{"class":42},"template",[36,686,687],{"class":78}," \u003C",[36,689,690],{"class":42},"typename",[36,692,693],{"class":93}," T",[36,695,696],{"class":78},">\n",[36,698,699,701,704],{"class":38,"line":50},[36,700,90],{"class":42},[36,702,703],{"class":93}," UniquePtr",[36,705,97],{"class":78},[36,707,708,710],{"class":38,"line":58},[36,709,103],{"class":42},[36,711,107],{"class":106},[36,713,714],{"class":38,"line":65},[36,715,716],{"class":231},"    // 构造：接管裸指针\n",[36,718,719,722,724,726,729,732,735,737,740,742,744,747],{"class":38,"line":82},[36,720,721],{"class":42},"    explicit",[36,723,703],{"class":113},[36,725,117],{"class":78},[36,727,728],{"class":93},"T",[36,730,731],{"class":42},"*",[36,733,734],{"class":123}," ptr",[36,736,384],{"class":42},[36,738,739],{"class":217}," nullptr",[36,741,127],{"class":78},[36,743,131],{"class":130},[36,745,746],{"class":113}," ptr_",[36,748,749],{"class":78},"(ptr) {}\n",[36,751,752],{"class":38,"line":87},[36,753,62],{"emptyLinePlaceholder":61},[36,755,756,759,762,765],{"class":38,"line":100},[36,757,758],{"class":113},"    ~UniquePtr",[36,760,761],{"class":78},"() {",[36,763,764],{"class":42},"delete",[36,766,767],{"class":78}," ptr_;}\n",[36,769,770],{"class":38,"line":110},[36,771,62],{"emptyLinePlaceholder":61},[36,773,774],{"class":38,"line":140},[36,775,776],{"class":231},"    // 禁止拷贝：防止多个指针同时拥有同一资源\n",[36,778,779,782,784,787,789,792,794,796,799],{"class":38,"line":145},[36,780,781],{"class":113},"    UniquePtr",[36,783,117],{"class":78},[36,785,786],{"class":42},"const",[36,788,703],{"class":93},[36,790,791],{"class":42},"&",[36,793,127],{"class":78},[36,795,173],{"class":42},[36,797,798],{"class":42}," delete",[36,800,79],{"class":78},[36,802,803,805,807,810,813,815,817,819,821,823,825],{"class":38,"line":164},[36,804,781],{"class":93},[36,806,791],{"class":42},[36,808,809],{"class":42}," operator",[36,811,812],{"class":78},"=(",[36,814,786],{"class":42},[36,816,703],{"class":93},[36,818,791],{"class":42},[36,820,127],{"class":78},[36,822,173],{"class":42},[36,824,798],{"class":42},[36,826,79],{"class":78},[36,828,829],{"class":38,"line":189},[36,830,62],{"emptyLinePlaceholder":61},[36,832,833],{"class":38,"line":223},[36,834,835],{"class":231},"    // 允许移动：转移所有权，noexcept保证扩容等场景不会fallback到拷贝\n",[36,837,838,840,842,845,848,851,853,857,860,862,864,867,869,872],{"class":38,"line":228},[36,839,781],{"class":113},[36,841,117],{"class":78},[36,843,844],{"class":93},"UniquePtr",[36,846,847],{"class":42},"&&",[36,849,850],{"class":123}," other",[36,852,127],{"class":78},[36,854,856],{"class":855},"s3Kl_","noexcept",[36,858,859],{"class":130}," :",[36,861,746],{"class":113},[36,863,117],{"class":78},[36,865,866],{"class":176},"other",[36,868,180],{"class":130},[36,870,871],{"class":273},"ptr_",[36,873,161],{"class":78},[36,875,876,879,881,883,885,887],{"class":38,"line":235},[36,877,878],{"class":176},"        other",[36,880,180],{"class":130},[36,882,871],{"class":273},[36,884,384],{"class":42},[36,886,739],{"class":217},[36,888,889],{"class":78},";  \n",[36,891,892],{"class":38,"line":280},[36,893,301],{"class":78},[36,895,896],{"class":38,"line":298},[36,897,62],{"emptyLinePlaceholder":61},[36,899,900,902,904,906,908,910,912,914,916,918],{"class":38,"line":304},[36,901,781],{"class":93},[36,903,791],{"class":42},[36,905,809],{"class":42},[36,907,812],{"class":78},[36,909,844],{"class":93},[36,911,847],{"class":42},[36,913,850],{"class":123},[36,915,127],{"class":78},[36,917,856],{"class":42},[36,919,97],{"class":78},[36,921,922,924,927,930,933,937],{"class":38,"line":309},[36,923,192],{"class":42},[36,925,926],{"class":78}," (",[36,928,929],{"class":176},"this",[36,931,932],{"class":42}," !=",[36,934,936],{"class":935},"s2AVI"," &",[36,938,939],{"class":78},"other) {\n",[36,941,942,945,948],{"class":38,"line":334},[36,943,944],{"class":42},"            delete",[36,946,947],{"class":78}," ptr_;",[36,949,950],{"class":231},"        // ★ 先释放自己原来的资源\n",[36,952,953,956,958,960,962,964],{"class":38,"line":351},[36,954,955],{"class":78},"            ptr_ ",[36,957,173],{"class":42},[36,959,850],{"class":176},[36,961,180],{"class":130},[36,963,871],{"class":273},[36,965,79],{"class":78},[36,967,968,971,973,975,977,979],{"class":38,"line":370},[36,969,970],{"class":176},"            other",[36,972,180],{"class":130},[36,974,871],{"class":273},[36,976,384],{"class":42},[36,978,739],{"class":217},[36,980,79],{"class":78},[36,982,983],{"class":38,"line":390},[36,984,435],{"class":78},[36,986,987,989,992,994],{"class":38,"line":424},[36,988,283],{"class":42},[36,990,991],{"class":42}," *",[36,993,929],{"class":176},[36,995,79],{"class":78},[36,997,998],{"class":38,"line":432},[36,999,301],{"class":78},[36,1001,1002],{"class":38,"line":438},[36,1003,62],{"emptyLinePlaceholder":61},[36,1005,1006],{"class":38,"line":443},[36,1007,1008],{"class":231},"    // 解引用\n",[36,1010,1011,1014,1016,1018,1021,1023,1026,1028,1030],{"class":38,"line":471},[36,1012,1013],{"class":93},"    T",[36,1015,791],{"class":42},[36,1017,809],{"class":42},[36,1019,1020],{"class":78},"*() ",[36,1022,786],{"class":42},[36,1024,1025],{"class":78}," { ",[36,1027,211],{"class":42},[36,1029,991],{"class":42},[36,1031,1032],{"class":78},"ptr_; }\n",[36,1034,1035,1037,1039,1041,1044,1046,1048,1050],{"class":38,"line":498},[36,1036,1013],{"class":93},[36,1038,731],{"class":42},[36,1040,809],{"class":42},[36,1042,1043],{"class":78},"->() ",[36,1045,786],{"class":42},[36,1047,1025],{"class":78},[36,1049,211],{"class":42},[36,1051,1052],{"class":78}," ptr_; }\n",[36,1054,1055,1057,1059,1061,1063,1065,1067,1069],{"class":38,"line":512},[36,1056,1013],{"class":93},[36,1058,731],{"class":42},[36,1060,151],{"class":113},[36,1062,463],{"class":78},[36,1064,786],{"class":42},[36,1066,1025],{"class":78},[36,1068,211],{"class":42},[36,1070,1052],{"class":78},[36,1072,1073],{"class":38,"line":525},[36,1074,62],{"emptyLinePlaceholder":61},[36,1076,1077],{"class":38,"line":530},[36,1078,1079],{"class":231},"    // 释放所有权，返回裸指针（调用者负责 delete）\n",[36,1081,1082,1084,1086,1089],{"class":38,"line":535},[36,1083,1013],{"class":93},[36,1085,731],{"class":42},[36,1087,1088],{"class":113}," release",[36,1090,1091],{"class":78},"() {\n",[36,1093,1094,1097,1099,1102,1104],{"class":38,"line":553},[36,1095,1096],{"class":78},"        T",[36,1098,731],{"class":42},[36,1100,1101],{"class":78}," tmp ",[36,1103,173],{"class":42},[36,1105,1106],{"class":78}," ptr_;\n",[36,1108,1109,1112,1114,1116],{"class":38,"line":572},[36,1110,1111],{"class":78},"        ptr_ ",[36,1113,173],{"class":42},[36,1115,739],{"class":217},[36,1117,79],{"class":78},[36,1119,1120,1122],{"class":38,"line":577},[36,1121,283],{"class":42},[36,1123,1124],{"class":78}," tmp;\n",[36,1126,1127],{"class":38,"line":582},[36,1128,301],{"class":78},[36,1130,1131],{"class":38,"line":590},[36,1132,62],{"emptyLinePlaceholder":61},[36,1134,1135],{"class":38,"line":598},[36,1136,1137],{"class":231},"    // 重置指针\n",[36,1139,1140,1142,1145,1147,1149,1151,1153,1155,1157],{"class":38,"line":621},[36,1141,312],{"class":42},[36,1143,1144],{"class":113}," reset",[36,1146,117],{"class":78},[36,1148,728],{"class":93},[36,1150,731],{"class":42},[36,1152,734],{"class":123},[36,1154,384],{"class":42},[36,1156,739],{"class":217},[36,1158,161],{"class":78},[36,1160,1161,1163,1166,1168],{"class":38,"line":659},[36,1162,192],{"class":42},[36,1164,1165],{"class":78}," (ptr_ ",[36,1167,358],{"class":42},[36,1169,1170],{"class":78}," ptr) {\n",[36,1172,1174,1176],{"class":38,"line":1173},42,[36,1175,944],{"class":42},[36,1177,1106],{"class":78},[36,1179,1181,1183,1185],{"class":38,"line":1180},43,[36,1182,955],{"class":78},[36,1184,173],{"class":42},[36,1186,1187],{"class":78}," ptr;\n",[36,1189,1191],{"class":38,"line":1190},44,[36,1192,435],{"class":78},[36,1194,1196],{"class":38,"line":1195},45,[36,1197,301],{"class":78},[36,1199,1201],{"class":38,"line":1200},46,[36,1202,62],{"emptyLinePlaceholder":61},[36,1204,1206],{"class":38,"line":1205},47,[36,1207,62],{"emptyLinePlaceholder":61},[36,1209,1211],{"class":38,"line":1210},48,[36,1212,62],{"emptyLinePlaceholder":61},[36,1214,1216,1218],{"class":38,"line":1215},49,[36,1217,585],{"class":42},[36,1219,107],{"class":106},[36,1221,1223,1225,1227],{"class":38,"line":1222},50,[36,1224,1013],{"class":78},[36,1226,731],{"class":42},[36,1228,1106],{"class":78},[36,1230,1232],{"class":38,"line":1231},51,[36,1233,662],{"class":78},[672,1235,1236],{"id":1236},"shared_ptr",[26,1238,1240],{"className":28,"code":1239,"language":30,"meta":31,"style":31},"template \u003Ctypename T>\nclass SharedPtr {\npublic:\n    // 构造：创建控制块（这里只用一个 int 做引用计数）\n    explicit SharedPtr(T* ptr = nullptr)\n        : ptr_(ptr), count_(ptr ? new int(1) : nullptr) {}\n\n    // 拷贝构造：共享资源，引用计数 +1\n    SharedPtr(const SharedPtr& other)\n        : ptr_(other.ptr_), count_(other.count_) {\n        if (count_) ++(*count_);  \n    }\n\n    // 拷贝赋值\n    SharedPtr& operator=(const SharedPtr& other) {\n        if (this != &other) {\n            release();          // ★ 先释放当前持有的资源\n            ptr_ = other.ptr_;\n            count_ = other.count_;\n            if (count_) ++(*count_);\n        }\n        return *this;\n    }\n\n    // 析构：减少引用计数，为 0 时真正释放资源\n    ~SharedPtr() {release();}\n\n    // 解引用\n    T& operator*() const { return *ptr_; }\n    T* operator->() const { return ptr_; }\n    T* get() const { return ptr_; }\n\n    int use_count() const {return count_ ? *count_ : 0;}\n\n    // 重置指针\n    void reset(T* ptr = nullptr) {\n        release();\n        if (ptr) {\n            ptr_ = ptr;\n            count_ = new int(1);\n        }\n    }\n\nprivate:\n    void release() {\n        if (count_ && --(*count_) == 0) {\n            delete ptr_;    // ★ 最后一个 SharedPtr 负责释放资源\n            delete count_;\n        }\n        ptr_ = nullptr;\n        count_ = nullptr;\n    }\n    T* ptr_;\n    int* count_;  \n};\n",[33,1241,1242,1254,1263,1269,1274,1295,1334,1338,1343,1360,1391,1408,1412,1416,1421,1441,1455,1466,1480,1495,1511,1515,1525,1529,1533,1538,1551,1555,1559,1579,1597,1615,1619,1653,1657,1661,1681,1688,1695,1703,1719,1723,1727,1731,1737,1745,1770,1779,1786,1790,1800,1811,1816,1825,1834],{"__ignoreMap":31},[36,1243,1244,1246,1248,1250,1252],{"class":38,"line":39},[36,1245,684],{"class":42},[36,1247,687],{"class":78},[36,1249,690],{"class":42},[36,1251,693],{"class":93},[36,1253,696],{"class":78},[36,1255,1256,1258,1261],{"class":38,"line":50},[36,1257,90],{"class":42},[36,1259,1260],{"class":93}," SharedPtr",[36,1262,97],{"class":78},[36,1264,1265,1267],{"class":38,"line":58},[36,1266,103],{"class":42},[36,1268,107],{"class":106},[36,1270,1271],{"class":38,"line":65},[36,1272,1273],{"class":231},"    // 构造：创建控制块（这里只用一个 int 做引用计数）\n",[36,1275,1276,1278,1280,1282,1284,1286,1288,1290,1292],{"class":38,"line":82},[36,1277,721],{"class":42},[36,1279,1260],{"class":113},[36,1281,117],{"class":78},[36,1283,728],{"class":93},[36,1285,731],{"class":42},[36,1287,734],{"class":123},[36,1289,384],{"class":42},[36,1291,739],{"class":217},[36,1293,1294],{"class":78},")\n",[36,1296,1297,1300,1302,1305,1307,1310,1313,1316,1319,1321,1323,1325,1327,1329,1331],{"class":38,"line":87},[36,1298,1299],{"class":130},"        :",[36,1301,746],{"class":113},[36,1303,1304],{"class":78},"(ptr)",[36,1306,259],{"class":130},[36,1308,1309],{"class":113}," count_",[36,1311,1312],{"class":78},"(ptr ",[36,1314,1315],{"class":42},"?",[36,1317,1318],{"class":42}," new",[36,1320,326],{"class":42},[36,1322,117],{"class":78},[36,1324,218],{"class":217},[36,1326,127],{"class":78},[36,1328,131],{"class":42},[36,1330,739],{"class":217},[36,1332,1333],{"class":78},") {}\n",[36,1335,1336],{"class":38,"line":100},[36,1337,62],{"emptyLinePlaceholder":61},[36,1339,1340],{"class":38,"line":110},[36,1341,1342],{"class":231},"    // 拷贝构造：共享资源，引用计数 +1\n",[36,1344,1345,1348,1350,1352,1354,1356,1358],{"class":38,"line":140},[36,1346,1347],{"class":113},"    SharedPtr",[36,1349,117],{"class":78},[36,1351,786],{"class":42},[36,1353,1260],{"class":93},[36,1355,791],{"class":42},[36,1357,850],{"class":123},[36,1359,1294],{"class":78},[36,1361,1362,1364,1366,1368,1370,1372,1374,1376,1378,1380,1382,1384,1386,1389],{"class":38,"line":145},[36,1363,1299],{"class":130},[36,1365,746],{"class":113},[36,1367,117],{"class":78},[36,1369,866],{"class":176},[36,1371,180],{"class":130},[36,1373,871],{"class":273},[36,1375,453],{"class":78},[36,1377,259],{"class":130},[36,1379,1309],{"class":113},[36,1381,117],{"class":78},[36,1383,866],{"class":176},[36,1385,180],{"class":130},[36,1387,1388],{"class":273},"count_",[36,1390,161],{"class":78},[36,1392,1393,1395,1398,1401,1403,1405],{"class":38,"line":164},[36,1394,192],{"class":42},[36,1396,1397],{"class":78}," (count_) ",[36,1399,1400],{"class":42},"++",[36,1402,117],{"class":78},[36,1404,731],{"class":42},[36,1406,1407],{"class":78},"count_);  \n",[36,1409,1410],{"class":38,"line":189},[36,1411,301],{"class":78},[36,1413,1414],{"class":38,"line":223},[36,1415,62],{"emptyLinePlaceholder":61},[36,1417,1418],{"class":38,"line":228},[36,1419,1420],{"class":231},"    // 拷贝赋值\n",[36,1422,1423,1425,1427,1429,1431,1433,1435,1437,1439],{"class":38,"line":235},[36,1424,1347],{"class":93},[36,1426,791],{"class":42},[36,1428,809],{"class":42},[36,1430,812],{"class":78},[36,1432,786],{"class":42},[36,1434,1260],{"class":93},[36,1436,791],{"class":42},[36,1438,850],{"class":123},[36,1440,161],{"class":78},[36,1442,1443,1445,1447,1449,1451,1453],{"class":38,"line":280},[36,1444,192],{"class":42},[36,1446,926],{"class":78},[36,1448,929],{"class":176},[36,1450,932],{"class":42},[36,1452,936],{"class":935},[36,1454,939],{"class":78},[36,1456,1457,1460,1463],{"class":38,"line":298},[36,1458,1459],{"class":113},"            release",[36,1461,1462],{"class":78},"();",[36,1464,1465],{"class":231},"          // ★ 先释放当前持有的资源\n",[36,1467,1468,1470,1472,1474,1476,1478],{"class":38,"line":304},[36,1469,955],{"class":78},[36,1471,173],{"class":42},[36,1473,850],{"class":176},[36,1475,180],{"class":130},[36,1477,871],{"class":273},[36,1479,79],{"class":78},[36,1481,1482,1485,1487,1489,1491,1493],{"class":38,"line":309},[36,1483,1484],{"class":78},"            count_ ",[36,1486,173],{"class":42},[36,1488,850],{"class":176},[36,1490,180],{"class":130},[36,1492,1388],{"class":273},[36,1494,79],{"class":78},[36,1496,1497,1500,1502,1504,1506,1508],{"class":38,"line":334},[36,1498,1499],{"class":42},"            if",[36,1501,1397],{"class":78},[36,1503,1400],{"class":42},[36,1505,117],{"class":78},[36,1507,731],{"class":42},[36,1509,1510],{"class":78},"count_);\n",[36,1512,1513],{"class":38,"line":351},[36,1514,435],{"class":78},[36,1516,1517,1519,1521,1523],{"class":38,"line":370},[36,1518,283],{"class":42},[36,1520,991],{"class":42},[36,1522,929],{"class":176},[36,1524,79],{"class":78},[36,1526,1527],{"class":38,"line":390},[36,1528,301],{"class":78},[36,1530,1531],{"class":38,"line":424},[36,1532,62],{"emptyLinePlaceholder":61},[36,1534,1535],{"class":38,"line":432},[36,1536,1537],{"class":231},"    // 析构：减少引用计数，为 0 时真正释放资源\n",[36,1539,1540,1543,1545,1548],{"class":38,"line":438},[36,1541,1542],{"class":113},"    ~SharedPtr",[36,1544,761],{"class":78},[36,1546,1547],{"class":113},"release",[36,1549,1550],{"class":78},"();}\n",[36,1552,1553],{"class":38,"line":443},[36,1554,62],{"emptyLinePlaceholder":61},[36,1556,1557],{"class":38,"line":471},[36,1558,1008],{"class":231},[36,1560,1561,1563,1565,1567,1569,1571,1573,1575,1577],{"class":38,"line":498},[36,1562,1013],{"class":93},[36,1564,791],{"class":42},[36,1566,809],{"class":42},[36,1568,1020],{"class":78},[36,1570,786],{"class":42},[36,1572,1025],{"class":78},[36,1574,211],{"class":42},[36,1576,991],{"class":42},[36,1578,1032],{"class":78},[36,1580,1581,1583,1585,1587,1589,1591,1593,1595],{"class":38,"line":512},[36,1582,1013],{"class":93},[36,1584,731],{"class":42},[36,1586,809],{"class":42},[36,1588,1043],{"class":78},[36,1590,786],{"class":42},[36,1592,1025],{"class":78},[36,1594,211],{"class":42},[36,1596,1052],{"class":78},[36,1598,1599,1601,1603,1605,1607,1609,1611,1613],{"class":38,"line":525},[36,1600,1013],{"class":93},[36,1602,731],{"class":42},[36,1604,151],{"class":113},[36,1606,463],{"class":78},[36,1608,786],{"class":42},[36,1610,1025],{"class":78},[36,1612,211],{"class":42},[36,1614,1052],{"class":78},[36,1616,1617],{"class":38,"line":530},[36,1618,62],{"emptyLinePlaceholder":61},[36,1620,1621,1623,1626,1628,1630,1633,1635,1638,1640,1642,1645,1647,1650],{"class":38,"line":535},[36,1622,148],{"class":42},[36,1624,1625],{"class":113}," use_count",[36,1627,463],{"class":78},[36,1629,786],{"class":42},[36,1631,1632],{"class":78}," {",[36,1634,211],{"class":42},[36,1636,1637],{"class":78}," count_ ",[36,1639,1315],{"class":42},[36,1641,991],{"class":42},[36,1643,1644],{"class":78},"count_ ",[36,1646,131],{"class":42},[36,1648,1649],{"class":217}," 0",[36,1651,1652],{"class":78},";}\n",[36,1654,1655],{"class":38,"line":553},[36,1656,62],{"emptyLinePlaceholder":61},[36,1658,1659],{"class":38,"line":572},[36,1660,1137],{"class":231},[36,1662,1663,1665,1667,1669,1671,1673,1675,1677,1679],{"class":38,"line":577},[36,1664,312],{"class":42},[36,1666,1144],{"class":113},[36,1668,117],{"class":78},[36,1670,728],{"class":93},[36,1672,731],{"class":42},[36,1674,734],{"class":123},[36,1676,384],{"class":42},[36,1678,739],{"class":217},[36,1680,161],{"class":78},[36,1682,1683,1686],{"class":38,"line":582},[36,1684,1685],{"class":113},"        release",[36,1687,522],{"class":78},[36,1689,1690,1692],{"class":38,"line":590},[36,1691,192],{"class":42},[36,1693,1694],{"class":78}," (ptr) {\n",[36,1696,1697,1699,1701],{"class":38,"line":598},[36,1698,955],{"class":78},[36,1700,173],{"class":42},[36,1702,1187],{"class":78},[36,1704,1705,1707,1709,1711,1713,1715,1717],{"class":38,"line":621},[36,1706,1484],{"class":78},[36,1708,173],{"class":42},[36,1710,1318],{"class":42},[36,1712,326],{"class":42},[36,1714,117],{"class":78},[36,1716,218],{"class":217},[36,1718,277],{"class":78},[36,1720,1721],{"class":38,"line":659},[36,1722,435],{"class":78},[36,1724,1725],{"class":38,"line":1173},[36,1726,301],{"class":78},[36,1728,1729],{"class":38,"line":1180},[36,1730,62],{"emptyLinePlaceholder":61},[36,1732,1733,1735],{"class":38,"line":1190},[36,1734,585],{"class":42},[36,1736,107],{"class":106},[36,1738,1739,1741,1743],{"class":38,"line":1195},[36,1740,312],{"class":42},[36,1742,1088],{"class":113},[36,1744,1091],{"class":78},[36,1746,1747,1749,1752,1754,1757,1759,1761,1764,1766,1768],{"class":38,"line":1200},[36,1748,192],{"class":42},[36,1750,1751],{"class":78}," (count_ ",[36,1753,847],{"class":935},[36,1755,1756],{"class":42}," --",[36,1758,117],{"class":78},[36,1760,731],{"class":42},[36,1762,1763],{"class":78},"count_) ",[36,1765,198],{"class":42},[36,1767,1649],{"class":217},[36,1769,161],{"class":78},[36,1771,1772,1774,1776],{"class":38,"line":1205},[36,1773,944],{"class":42},[36,1775,947],{"class":78},[36,1777,1778],{"class":231},"    // ★ 最后一个 SharedPtr 负责释放资源\n",[36,1780,1781,1783],{"class":38,"line":1210},[36,1782,944],{"class":42},[36,1784,1785],{"class":78}," count_;\n",[36,1787,1788],{"class":38,"line":1215},[36,1789,435],{"class":78},[36,1791,1792,1794,1796,1798],{"class":38,"line":1222},[36,1793,1111],{"class":78},[36,1795,173],{"class":42},[36,1797,739],{"class":217},[36,1799,79],{"class":78},[36,1801,1802,1805,1807,1809],{"class":38,"line":1231},[36,1803,1804],{"class":78},"        count_ ",[36,1806,173],{"class":42},[36,1808,739],{"class":217},[36,1810,79],{"class":78},[36,1812,1814],{"class":38,"line":1813},52,[36,1815,301],{"class":78},[36,1817,1819,1821,1823],{"class":38,"line":1818},53,[36,1820,1013],{"class":78},[36,1822,731],{"class":42},[36,1824,1106],{"class":78},[36,1826,1828,1831],{"class":38,"line":1827},54,[36,1829,1830],{"class":42},"    int*",[36,1832,1833],{"class":78}," count_;  \n",[36,1835,1837],{"class":38,"line":1836},55,[36,1838,662],{"class":78},[15,1840],{},[18,1842,1843],{"id":1843},"多线程",[672,1845,1846],{"id":1846},"多消费者",[26,1848,1850],{"className":28,"code":1849,"language":30,"meta":31,"style":31},"#include \u003Ciostream>\n#include \u003Cthread>\n#include \u003Cmutex>\n#include \u003Ccondition_variable>\n#include \u003Cvector>\n\nusing namespace std;\n\nint resource = 10;          \nmutex mtx;\ncondition_variable cv;\n\nvoid consumer(int id) {\n    while (true) {\n        unique_lock\u003Cmutex> lk(mtx);\n        cv.wait(lk, [] { return resource > 0; });\n\n        if (resource == 0) break;   // 安全退出\n        --resource;                 // 消费资源\n        cout \u003C\u003C \"consumer \" \u003C\u003C id \u003C\u003C \" consumed, left=\" \u003C\u003C resource \u003C\u003C endl;\n    }\n}\n\nint main() {\n    vector\u003Cthread> threads;\n    for (int i = 0; i \u003C 3; ++i)threads.emplace_back(consumer, i);\n    cv.notify_all();                 // 启动消费者\n    for (auto& t : threads) t.join();\n}\n",[33,1851,1852,1859,1866,1873,1880,1887,1891,1901,1905,1920,1925,1930,1934,1951,1963,1981,2010,2014,2036,2047,2078,2082,2087,2091,2100,2115,2163,2178,2207],{"__ignoreMap":31},[36,1853,1854,1856],{"class":38,"line":39},[36,1855,43],{"class":42},[36,1857,1858],{"class":46}," \u003Ciostream>\n",[36,1860,1861,1863],{"class":38,"line":50},[36,1862,43],{"class":42},[36,1864,1865],{"class":46}," \u003Cthread>\n",[36,1867,1868,1870],{"class":38,"line":58},[36,1869,43],{"class":42},[36,1871,1872],{"class":46}," \u003Cmutex>\n",[36,1874,1875,1877],{"class":38,"line":65},[36,1876,43],{"class":42},[36,1878,1879],{"class":46}," \u003Ccondition_variable>\n",[36,1881,1882,1884],{"class":38,"line":82},[36,1883,43],{"class":42},[36,1885,1886],{"class":46}," \u003Cvector>\n",[36,1888,1889],{"class":38,"line":87},[36,1890,62],{"emptyLinePlaceholder":61},[36,1892,1893,1895,1897,1899],{"class":38,"line":100},[36,1894,68],{"class":42},[36,1896,71],{"class":42},[36,1898,75],{"class":74},[36,1900,79],{"class":78},[36,1902,1903],{"class":38,"line":110},[36,1904,62],{"emptyLinePlaceholder":61},[36,1906,1907,1909,1912,1914,1917],{"class":38,"line":140},[36,1908,120],{"class":42},[36,1910,1911],{"class":78}," resource ",[36,1913,173],{"class":42},[36,1915,1916],{"class":217}," 10",[36,1918,1919],{"class":78},";          \n",[36,1921,1922],{"class":38,"line":145},[36,1923,1924],{"class":78},"mutex mtx;\n",[36,1926,1927],{"class":38,"line":164},[36,1928,1929],{"class":78},"condition_variable cv;\n",[36,1931,1932],{"class":38,"line":189},[36,1933,62],{"emptyLinePlaceholder":61},[36,1935,1936,1939,1942,1944,1946,1949],{"class":38,"line":223},[36,1937,1938],{"class":42},"void",[36,1940,1941],{"class":113}," consumer",[36,1943,117],{"class":78},[36,1945,120],{"class":42},[36,1947,1948],{"class":123}," id",[36,1950,161],{"class":78},[36,1952,1953,1956,1958,1961],{"class":38,"line":228},[36,1954,1955],{"class":42},"    while",[36,1957,926],{"class":78},[36,1959,1960],{"class":217},"true",[36,1962,161],{"class":78},[36,1964,1965,1968,1970,1973,1975,1978],{"class":38,"line":235},[36,1966,1967],{"class":78},"        unique_lock",[36,1969,604],{"class":42},[36,1971,1972],{"class":78},"mutex",[36,1974,653],{"class":42},[36,1976,1977],{"class":113}," lk",[36,1979,1980],{"class":78},"(mtx);\n",[36,1982,1983,1986,1988,1991,1994,1996,1999,2001,2003,2005,2007],{"class":38,"line":280},[36,1984,1985],{"class":176},"        cv",[36,1987,180],{"class":130},[36,1989,1990],{"class":113},"wait",[36,1992,1993],{"class":78},"(lk",[36,1995,259],{"class":130},[36,1997,1998],{"class":78}," [] { ",[36,2000,211],{"class":42},[36,2002,1911],{"class":78},[36,2004,653],{"class":42},[36,2006,1649],{"class":217},[36,2008,2009],{"class":78},"; });\n",[36,2011,2012],{"class":38,"line":298},[36,2013,62],{"emptyLinePlaceholder":61},[36,2015,2016,2018,2021,2023,2025,2027,2030,2033],{"class":38,"line":304},[36,2017,192],{"class":42},[36,2019,2020],{"class":78}," (resource ",[36,2022,198],{"class":42},[36,2024,1649],{"class":217},[36,2026,127],{"class":78},[36,2028,2029],{"class":42},"break",[36,2031,2032],{"class":78},";",[36,2034,2035],{"class":231},"   // 安全退出\n",[36,2037,2038,2041,2044],{"class":38,"line":309},[36,2039,2040],{"class":42},"        --",[36,2042,2043],{"class":78},"resource;",[36,2045,2046],{"class":231},"                 // 消费资源\n",[36,2048,2049,2052,2055,2058,2061,2064,2066,2069,2071,2073,2075],{"class":38,"line":334},[36,2050,2051],{"class":78},"        cout ",[36,2053,2054],{"class":42},"\u003C\u003C",[36,2056,2057],{"class":46}," \"consumer \"",[36,2059,2060],{"class":42}," \u003C\u003C",[36,2062,2063],{"class":78}," id ",[36,2065,2054],{"class":42},[36,2067,2068],{"class":46}," \" consumed, left=\"",[36,2070,2060],{"class":42},[36,2072,1911],{"class":78},[36,2074,2054],{"class":42},[36,2076,2077],{"class":78}," endl;\n",[36,2079,2080],{"class":38,"line":351},[36,2081,301],{"class":78},[36,2083,2084],{"class":38,"line":370},[36,2085,2086],{"class":78},"}\n",[36,2088,2089],{"class":38,"line":390},[36,2090,62],{"emptyLinePlaceholder":61},[36,2092,2093,2095,2098],{"class":38,"line":424},[36,2094,120],{"class":42},[36,2096,2097],{"class":113}," main",[36,2099,1091],{"class":78},[36,2101,2102,2105,2107,2110,2112],{"class":38,"line":432},[36,2103,2104],{"class":78},"    vector",[36,2106,604],{"class":42},[36,2108,2109],{"class":78},"thread",[36,2111,653],{"class":42},[36,2113,2114],{"class":78}," threads;\n",[36,2116,2117,2120,2122,2124,2127,2129,2131,2134,2136,2139,2142,2144,2147,2150,2152,2155,2158,2160],{"class":38,"line":438},[36,2118,2119],{"class":42},"    for",[36,2121,926],{"class":78},[36,2123,120],{"class":42},[36,2125,2126],{"class":78}," i ",[36,2128,173],{"class":42},[36,2130,1649],{"class":217},[36,2132,2133],{"class":78},"; i ",[36,2135,604],{"class":42},[36,2137,2138],{"class":217}," 3",[36,2140,2141],{"class":78},"; ",[36,2143,1400],{"class":42},[36,2145,2146],{"class":78},"i)",[36,2148,2149],{"class":176},"threads",[36,2151,180],{"class":130},[36,2153,2154],{"class":113},"emplace_back",[36,2156,2157],{"class":78},"(consumer",[36,2159,259],{"class":130},[36,2161,2162],{"class":78}," i);\n",[36,2164,2165,2168,2170,2173,2175],{"class":38,"line":443},[36,2166,2167],{"class":176},"    cv",[36,2169,180],{"class":130},[36,2171,2172],{"class":113},"notify_all",[36,2174,1462],{"class":78},[36,2176,2177],{"class":231},"                 // 启动消费者\n",[36,2179,2180,2182,2184,2187,2189,2192,2194,2197,2200,2202,2205],{"class":38,"line":471},[36,2181,2119],{"class":42},[36,2183,926],{"class":78},[36,2185,2186],{"class":42},"auto",[36,2188,791],{"class":935},[36,2190,2191],{"class":78}," t ",[36,2193,131],{"class":130},[36,2195,2196],{"class":78}," threads) ",[36,2198,2199],{"class":176},"t",[36,2201,180],{"class":130},[36,2203,2204],{"class":113},"join",[36,2206,522],{"class":78},[36,2208,2209],{"class":38,"line":498},[36,2210,2086],{"class":78},[672,2212,2213],{"id":2213},"循环打印奇偶数",[26,2215,2217],{"className":28,"code":2216,"language":30,"meta":31,"style":31},"#include \u003Ciostream>\n#include \u003Cthread>\n#include \u003Cmutex>\n#include \u003Ccondition_variable>\n\nusing namespace std;\n\nint cur = 1;\nconst int N = 10;\nmutex mtx;\ncondition_variable cv;\n\nvoid print_odd() {\n    while (true) {\n        unique_lock\u003Cmutex> lk(mtx);\n        cv.wait(lk, [] { return cur > N || cur % 2 == 1; });\n        if (cur > N) break;\n        cout \u003C\u003C cur++ \u003C\u003C \" \";\n        cv.notify_all();\n    }\n}\n\nvoid print_even() {\n    while (true) {\n        unique_lock\u003Cmutex> lk(mtx);\n        cv.wait(lk, [] { return cur > N || cur % 2 == 0; });\n        if (cur > N) break;\n        cout \u003C\u003C cur++ \u003C\u003C \" \";\n        cv.notify_all();\n    }\n}\n\nint main() {\n    thread t1(print_odd);\n    thread t2(print_even);\n\n    t1.join();\n    t2.join();\n}\n",[33,2218,2219,2225,2231,2237,2243,2247,2257,2261,2275,2290,2294,2298,2302,2311,2321,2335,2375,2391,2409,2419,2423,2427,2431,2440,2450,2464,2500,2514,2530,2540,2544,2548,2552,2560,2571,2581,2585,2596,2607],{"__ignoreMap":31},[36,2220,2221,2223],{"class":38,"line":39},[36,2222,43],{"class":42},[36,2224,1858],{"class":46},[36,2226,2227,2229],{"class":38,"line":50},[36,2228,43],{"class":42},[36,2230,1865],{"class":46},[36,2232,2233,2235],{"class":38,"line":58},[36,2234,43],{"class":42},[36,2236,1872],{"class":46},[36,2238,2239,2241],{"class":38,"line":65},[36,2240,43],{"class":42},[36,2242,1879],{"class":46},[36,2244,2245],{"class":38,"line":82},[36,2246,62],{"emptyLinePlaceholder":61},[36,2248,2249,2251,2253,2255],{"class":38,"line":87},[36,2250,68],{"class":42},[36,2252,71],{"class":42},[36,2254,75],{"class":74},[36,2256,79],{"class":78},[36,2258,2259],{"class":38,"line":100},[36,2260,62],{"emptyLinePlaceholder":61},[36,2262,2263,2265,2268,2270,2273],{"class":38,"line":110},[36,2264,120],{"class":42},[36,2266,2267],{"class":78}," cur ",[36,2269,173],{"class":42},[36,2271,2272],{"class":217}," 1",[36,2274,79],{"class":78},[36,2276,2277,2279,2281,2284,2286,2288],{"class":38,"line":140},[36,2278,786],{"class":42},[36,2280,326],{"class":42},[36,2282,2283],{"class":78}," N ",[36,2285,173],{"class":42},[36,2287,1916],{"class":217},[36,2289,79],{"class":78},[36,2291,2292],{"class":38,"line":145},[36,2293,1924],{"class":78},[36,2295,2296],{"class":38,"line":164},[36,2297,1929],{"class":78},[36,2299,2300],{"class":38,"line":189},[36,2301,62],{"emptyLinePlaceholder":61},[36,2303,2304,2306,2309],{"class":38,"line":223},[36,2305,1938],{"class":42},[36,2307,2308],{"class":113}," print_odd",[36,2310,1091],{"class":78},[36,2312,2313,2315,2317,2319],{"class":38,"line":228},[36,2314,1955],{"class":42},[36,2316,926],{"class":78},[36,2318,1960],{"class":217},[36,2320,161],{"class":78},[36,2322,2323,2325,2327,2329,2331,2333],{"class":38,"line":235},[36,2324,1967],{"class":78},[36,2326,604],{"class":42},[36,2328,1972],{"class":78},[36,2330,653],{"class":42},[36,2332,1977],{"class":113},[36,2334,1980],{"class":78},[36,2336,2337,2339,2341,2343,2345,2347,2349,2351,2353,2355,2357,2360,2362,2365,2368,2371,2373],{"class":38,"line":280},[36,2338,1985],{"class":176},[36,2340,180],{"class":130},[36,2342,1990],{"class":113},[36,2344,1993],{"class":78},[36,2346,259],{"class":130},[36,2348,1998],{"class":78},[36,2350,211],{"class":42},[36,2352,2267],{"class":78},[36,2354,653],{"class":42},[36,2356,2283],{"class":78},[36,2358,2359],{"class":935},"||",[36,2361,2267],{"class":78},[36,2363,2364],{"class":42},"%",[36,2366,2367],{"class":217}," 2",[36,2369,2370],{"class":42}," ==",[36,2372,2272],{"class":217},[36,2374,2009],{"class":78},[36,2376,2377,2379,2382,2384,2387,2389],{"class":38,"line":298},[36,2378,192],{"class":42},[36,2380,2381],{"class":78}," (cur ",[36,2383,653],{"class":42},[36,2385,2386],{"class":78}," N) ",[36,2388,2029],{"class":42},[36,2390,79],{"class":78},[36,2392,2393,2395,2397,2400,2402,2404,2407],{"class":38,"line":304},[36,2394,2051],{"class":78},[36,2396,2054],{"class":42},[36,2398,2399],{"class":78}," cur",[36,2401,1400],{"class":42},[36,2403,2060],{"class":42},[36,2405,2406],{"class":46}," \" \"",[36,2408,79],{"class":78},[36,2410,2411,2413,2415,2417],{"class":38,"line":309},[36,2412,1985],{"class":176},[36,2414,180],{"class":130},[36,2416,2172],{"class":113},[36,2418,522],{"class":78},[36,2420,2421],{"class":38,"line":334},[36,2422,301],{"class":78},[36,2424,2425],{"class":38,"line":351},[36,2426,2086],{"class":78},[36,2428,2429],{"class":38,"line":370},[36,2430,62],{"emptyLinePlaceholder":61},[36,2432,2433,2435,2438],{"class":38,"line":390},[36,2434,1938],{"class":42},[36,2436,2437],{"class":113}," print_even",[36,2439,1091],{"class":78},[36,2441,2442,2444,2446,2448],{"class":38,"line":424},[36,2443,1955],{"class":42},[36,2445,926],{"class":78},[36,2447,1960],{"class":217},[36,2449,161],{"class":78},[36,2451,2452,2454,2456,2458,2460,2462],{"class":38,"line":432},[36,2453,1967],{"class":78},[36,2455,604],{"class":42},[36,2457,1972],{"class":78},[36,2459,653],{"class":42},[36,2461,1977],{"class":113},[36,2463,1980],{"class":78},[36,2465,2466,2468,2470,2472,2474,2476,2478,2480,2482,2484,2486,2488,2490,2492,2494,2496,2498],{"class":38,"line":438},[36,2467,1985],{"class":176},[36,2469,180],{"class":130},[36,2471,1990],{"class":113},[36,2473,1993],{"class":78},[36,2475,259],{"class":130},[36,2477,1998],{"class":78},[36,2479,211],{"class":42},[36,2481,2267],{"class":78},[36,2483,653],{"class":42},[36,2485,2283],{"class":78},[36,2487,2359],{"class":935},[36,2489,2267],{"class":78},[36,2491,2364],{"class":42},[36,2493,2367],{"class":217},[36,2495,2370],{"class":42},[36,2497,1649],{"class":217},[36,2499,2009],{"class":78},[36,2501,2502,2504,2506,2508,2510,2512],{"class":38,"line":443},[36,2503,192],{"class":42},[36,2505,2381],{"class":78},[36,2507,653],{"class":42},[36,2509,2386],{"class":78},[36,2511,2029],{"class":42},[36,2513,79],{"class":78},[36,2515,2516,2518,2520,2522,2524,2526,2528],{"class":38,"line":471},[36,2517,2051],{"class":78},[36,2519,2054],{"class":42},[36,2521,2399],{"class":78},[36,2523,1400],{"class":42},[36,2525,2060],{"class":42},[36,2527,2406],{"class":46},[36,2529,79],{"class":78},[36,2531,2532,2534,2536,2538],{"class":38,"line":498},[36,2533,1985],{"class":176},[36,2535,180],{"class":130},[36,2537,2172],{"class":113},[36,2539,522],{"class":78},[36,2541,2542],{"class":38,"line":512},[36,2543,301],{"class":78},[36,2545,2546],{"class":38,"line":525},[36,2547,2086],{"class":78},[36,2549,2550],{"class":38,"line":530},[36,2551,62],{"emptyLinePlaceholder":61},[36,2553,2554,2556,2558],{"class":38,"line":535},[36,2555,120],{"class":42},[36,2557,2097],{"class":113},[36,2559,1091],{"class":78},[36,2561,2562,2565,2568],{"class":38,"line":553},[36,2563,2564],{"class":78},"    thread ",[36,2566,2567],{"class":113},"t1",[36,2569,2570],{"class":78},"(print_odd);\n",[36,2572,2573,2575,2578],{"class":38,"line":572},[36,2574,2564],{"class":78},[36,2576,2577],{"class":113},"t2",[36,2579,2580],{"class":78},"(print_even);\n",[36,2582,2583],{"class":38,"line":577},[36,2584,62],{"emptyLinePlaceholder":61},[36,2586,2587,2590,2592,2594],{"class":38,"line":582},[36,2588,2589],{"class":176},"    t1",[36,2591,180],{"class":130},[36,2593,2204],{"class":113},[36,2595,522],{"class":78},[36,2597,2598,2601,2603,2605],{"class":38,"line":590},[36,2599,2600],{"class":176},"    t2",[36,2602,180],{"class":130},[36,2604,2204],{"class":113},[36,2606,522],{"class":78},[36,2608,2609],{"class":38,"line":598},[36,2610,2086],{"class":78},[15,2612],{},[18,2614,2615],{"id":2615},"设计模式",[672,2617,2618],{"id":2618},"单例模式",[26,2620,2622],{"className":28,"code":2621,"language":30,"meta":31,"style":31},"class Singleton {\npublic:\n    // 获取唯一实例：C++11 起函数内 static 初始化线程安全\n    static Singleton& instance() {\n        static Singleton inst;   // 懒加载：第一次调用才构造\n        return inst;\n    }\n\n    void foo() {}\n\n    Singleton(const Singleton&) = delete;\n    Singleton& operator=(const Singleton&) = delete;\n    Singleton(Singleton&&) = delete;\n    Singleton& operator=(Singleton&&) = delete;\n\nprivate:\n    Singleton() = default;   // 构造私有化\n    ~Singleton() = default;  // 析构私有/默认（由静态对象生命周期管理）\n};\n",[33,2623,2624,2633,2639,2644,2658,2669,2676,2680,2684,2694,2698,2719,2743,2762,2784,2788,2794,2810,2826],{"__ignoreMap":31},[36,2625,2626,2628,2631],{"class":38,"line":39},[36,2627,90],{"class":42},[36,2629,2630],{"class":93}," Singleton",[36,2632,97],{"class":78},[36,2634,2635,2637],{"class":38,"line":50},[36,2636,103],{"class":42},[36,2638,107],{"class":106},[36,2640,2641],{"class":38,"line":58},[36,2642,2643],{"class":231},"    // 获取唯一实例：C++11 起函数内 static 初始化线程安全\n",[36,2645,2646,2649,2651,2653,2656],{"class":38,"line":65},[36,2647,2648],{"class":42},"    static",[36,2650,2630],{"class":93},[36,2652,791],{"class":42},[36,2654,2655],{"class":113}," instance",[36,2657,1091],{"class":78},[36,2659,2660,2663,2666],{"class":38,"line":82},[36,2661,2662],{"class":42},"        static",[36,2664,2665],{"class":78}," Singleton inst;",[36,2667,2668],{"class":231},"   // 懒加载：第一次调用才构造\n",[36,2670,2671,2673],{"class":38,"line":87},[36,2672,283],{"class":42},[36,2674,2675],{"class":78}," inst;\n",[36,2677,2678],{"class":38,"line":100},[36,2679,301],{"class":78},[36,2681,2682],{"class":38,"line":110},[36,2683,62],{"emptyLinePlaceholder":61},[36,2685,2686,2688,2691],{"class":38,"line":140},[36,2687,312],{"class":42},[36,2689,2690],{"class":113}," foo",[36,2692,2693],{"class":78},"() {}\n",[36,2695,2696],{"class":38,"line":145},[36,2697,62],{"emptyLinePlaceholder":61},[36,2699,2700,2703,2705,2707,2709,2711,2713,2715,2717],{"class":38,"line":164},[36,2701,2702],{"class":113},"    Singleton",[36,2704,117],{"class":78},[36,2706,786],{"class":42},[36,2708,2630],{"class":93},[36,2710,791],{"class":42},[36,2712,127],{"class":78},[36,2714,173],{"class":42},[36,2716,798],{"class":42},[36,2718,79],{"class":78},[36,2720,2721,2723,2725,2727,2729,2731,2733,2735,2737,2739,2741],{"class":38,"line":189},[36,2722,2702],{"class":93},[36,2724,791],{"class":42},[36,2726,809],{"class":42},[36,2728,812],{"class":78},[36,2730,786],{"class":42},[36,2732,2630],{"class":93},[36,2734,791],{"class":42},[36,2736,127],{"class":78},[36,2738,173],{"class":42},[36,2740,798],{"class":42},[36,2742,79],{"class":78},[36,2744,2745,2747,2749,2752,2754,2756,2758,2760],{"class":38,"line":223},[36,2746,2702],{"class":113},[36,2748,117],{"class":78},[36,2750,2751],{"class":93},"Singleton",[36,2753,847],{"class":42},[36,2755,127],{"class":78},[36,2757,173],{"class":42},[36,2759,798],{"class":42},[36,2761,79],{"class":78},[36,2763,2764,2766,2768,2770,2772,2774,2776,2778,2780,2782],{"class":38,"line":228},[36,2765,2702],{"class":93},[36,2767,791],{"class":42},[36,2769,809],{"class":42},[36,2771,812],{"class":78},[36,2773,2751],{"class":93},[36,2775,847],{"class":42},[36,2777,127],{"class":78},[36,2779,173],{"class":42},[36,2781,798],{"class":42},[36,2783,79],{"class":78},[36,2785,2786],{"class":38,"line":235},[36,2787,62],{"emptyLinePlaceholder":61},[36,2789,2790,2792],{"class":38,"line":280},[36,2791,585],{"class":42},[36,2793,107],{"class":106},[36,2795,2796,2798,2800,2802,2805,2807],{"class":38,"line":298},[36,2797,2702],{"class":113},[36,2799,463],{"class":78},[36,2801,173],{"class":42},[36,2803,2804],{"class":42}," default",[36,2806,2032],{"class":78},[36,2808,2809],{"class":231},"   // 构造私有化\n",[36,2811,2812,2815,2817,2819,2821,2823],{"class":38,"line":304},[36,2813,2814],{"class":113},"    ~Singleton",[36,2816,463],{"class":78},[36,2818,173],{"class":42},[36,2820,2804],{"class":42},[36,2822,2032],{"class":78},[36,2824,2825],{"class":231},"  // 析构私有/默认（由静态对象生命周期管理）\n",[36,2827,2828],{"class":38,"line":309},[36,2829,662],{"class":78},[2831,2832,2833],"style",{},"html pre.shiki code .sSCA1, html code.shiki .sSCA1{--shiki-default:#C678DD;--shiki-dark:#C678DD;--shiki-light:#D32F2F}html pre.shiki code .sZaK-, html code.shiki .sZaK-{--shiki-default:#98C379;--shiki-dark:#98C379;--shiki-light:#22863A}html pre.shiki code .svpSI, html code.shiki .svpSI{--shiki-default:#E5C07B;--shiki-dark:#E5C07B;--shiki-light:#24292EFF}html pre.shiki code .s0bQm, html code.shiki .s0bQm{--shiki-default:#ABB2BF;--shiki-dark:#ABB2BF;--shiki-light:#24292EFF}html pre.shiki code .s1pBA, html code.shiki .s1pBA{--shiki-default:#E5C07B;--shiki-dark:#E5C07B;--shiki-light:#6F42C1}html pre.shiki code .svaOe, html code.shiki .svaOe{--shiki-default:#C678DD;--shiki-dark:#C678DD;--shiki-light:#212121}html pre.shiki code .slNdt, html code.shiki .slNdt{--shiki-default:#61AFEF;--shiki-dark:#61AFEF;--shiki-light:#6F42C1}html pre.shiki code .sQkFB, html code.shiki .sQkFB{--shiki-default:#E06C75;--shiki-default-font-style:italic;--shiki-dark:#E06C75;--shiki-dark-font-style:italic;--shiki-light:#24292EFF;--shiki-light-font-style:inherit}html pre.shiki code .s2dl9, html code.shiki .s2dl9{--shiki-default:#ABB2BF;--shiki-dark:#ABB2BF;--shiki-light:#212121}html pre.shiki code .sIhaf, html code.shiki .sIhaf{--shiki-default:#E5C07B;--shiki-dark:#E5C07B;--shiki-light:#1976D2}html pre.shiki code .sWEYk, html code.shiki .sWEYk{--shiki-default:#D19A66;--shiki-dark:#D19A66;--shiki-light:#1976D2}html pre.shiki code .sU3lX, html code.shiki .sU3lX{--shiki-default:#7F848E;--shiki-default-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;--shiki-light:#C2C3C5;--shiki-light-font-style:inherit}html pre.shiki code .sBPOt, html code.shiki .sBPOt{--shiki-default:#E06C75;--shiki-dark:#E06C75;--shiki-light:#24292EFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html pre.shiki code .s3Kl_, html code.shiki .s3Kl_{--shiki-default:#ABB2BF;--shiki-dark:#ABB2BF;--shiki-light:#D32F2F}html pre.shiki code .s2AVI, html code.shiki .s2AVI{--shiki-default:#56B6C2;--shiki-dark:#56B6C2;--shiki-light:#D32F2F}",{"title":31,"searchDepth":50,"depth":50,"links":2835},[2836,2837,2841,2845],{"id":20,"depth":50,"text":21},{"id":670,"depth":50,"text":670,"children":2838},[2839,2840],{"id":674,"depth":58,"text":674},{"id":1236,"depth":58,"text":1236},{"id":1843,"depth":50,"text":1843,"children":2842},[2843,2844],{"id":1846,"depth":58,"text":1846},{"id":2213,"depth":58,"text":2213},{"id":2615,"depth":50,"text":2615,"children":2846},[2847],{"id":2618,"depth":58,"text":2618},"algorithm","bagu.png",null,"2025-12-24","智能指针、LRU与多线程等","md",{},"/posts/cppbagu",false,{"title":6,"description":2852},"posts/cppbagu","-W8qM42Ey83azzFc81vbShKd4-U4B3cL-7aVx-va5_g",{"id":2861,"title":2862,"body":2863,"category":2848,"cover":7336,"coverAlt":2850,"date":7337,"description":7338,"extension":2853,"meta":7339,"navigation":61,"path":7340,"pinned":2856,"seo":7341,"stem":7342,"__hash__":7343},"posts/posts/dogdalgo.md","算法笔试之二分与贪心",{"type":8,"value":2864,"toc":7334},[2865,2868,2870,2873,3497,3613,3616,3679,3790,3792,3795,4569,4572,4585,4588,4760,4820,5050,5347,5402,5645,5972,5977,6340,6818,7331],[11,2866,2867],{},"回国一直笔试不断，面试一直挂，稍有难度的场次这是第一次AK，算是复健有一定成效。也和题目不那么难有关系。",[15,2869],{},[11,2871,2872],{},"首先是一道序列操作，给包装了一堆，下面是题目大意：",[2874,2875,2876,3013,3168,3271],"blockquote",{},[11,2877,2878,2879,2923,2924,2954,2955,3012],{},"定义序列的加法运算，是一个序列",[36,2880,2883,2905],{"className":2881},[2882],"katex",[36,2884,2887],{"className":2885},[2886],"katex-mathml",[2888,2889,2891],"math",{"xmlns":2890},"http://www.w3.org/1998/Math/MathML",[2892,2893,2894,2901],"semantics",{},[2895,2896,2897],"mrow",{},[2898,2899,2900],"mi",{},"A",[2902,2903,2900],"annotation",{"encoding":2904},"application/x-tex",[36,2906,2909],{"className":2907,"ariaHidden":1960},[2908],"katex-html",[36,2910,2913,2918],{"className":2911},[2912],"base",[36,2914],{"className":2915,"style":2917},[2916],"strut","height:0.6833em;",[36,2919,2900],{"className":2920},[2921,2922],"mord","mathnormal","和一个常数",[36,2925,2927,2941],{"className":2926},[2882],[36,2928,2930],{"className":2929},[2886],[2888,2931,2932],{"xmlns":2890},[2892,2933,2934,2939],{},[2895,2935,2936],{},[2898,2937,2938],{},"x",[2902,2940,2938],{"encoding":2904},[36,2942,2944],{"className":2943,"ariaHidden":1960},[2908],[36,2945,2947,2951],{"className":2946},[2912],[36,2948],{"className":2949,"style":2950},[2916],"height:0.4306em;",[36,2952,2938],{"className":2953},[2921,2922],"的运算，结果得到一个序列，元素值为原序列对应位置元素加上该常数。记作",[36,2956,2958,2978],{"className":2957},[2882],[36,2959,2961],{"className":2960},[2886],[2888,2962,2963],{"xmlns":2890},[2892,2964,2965,2975],{},[2895,2966,2967,2969,2973],{},[2898,2968,2900],{},[2970,2971,2972],"mo",{},"+",[2898,2974,2938],{},[2902,2976,2977],{"encoding":2904},"A+x",[36,2979,2981,3003],{"className":2980,"ariaHidden":1960},[2908],[36,2982,2984,2988,2991,2996,3000],{"className":2983},[2912],[36,2985],{"className":2986,"style":2987},[2916],"height:0.7667em;vertical-align:-0.0833em;",[36,2989,2900],{"className":2990},[2921,2922],[36,2992],{"className":2993,"style":2995},[2994],"mspace","margin-right:0.2222em;",[36,2997,2972],{"className":2998},[2999],"mbin",[36,3001],{"className":3002,"style":2995},[2994],[36,3004,3006,3009],{"className":3005},[2912],[36,3007],{"className":3008,"style":2950},[2916],[36,3010,2938],{"className":3011},[2921,2922],"。",[11,3014,3015,3016,3044,3045,3075,3076,3104,3105,3133,3134,3012],{},"定义序列的乘法运算，注意不满足交换律，是一个序列",[36,3017,3019,3032],{"className":3018},[2882],[36,3020,3022],{"className":3021},[2886],[2888,3023,3024],{"xmlns":2890},[2892,3025,3026,3030],{},[2895,3027,3028],{},[2898,3029,2900],{},[2902,3031,2900],{"encoding":2904},[36,3033,3035],{"className":3034,"ariaHidden":1960},[2908],[36,3036,3038,3041],{"className":3037},[2912],[36,3039],{"className":3040,"style":2917},[2916],[36,3042,2900],{"className":3043},[2921,2922],"和另一个序列",[36,3046,3048,3062],{"className":3047},[2882],[36,3049,3051],{"className":3050},[2886],[2888,3052,3053],{"xmlns":2890},[2892,3054,3055,3060],{},[2895,3056,3057],{},[2898,3058,3059],{},"B",[2902,3061,3059],{"encoding":2904},[36,3063,3065],{"className":3064,"ariaHidden":1960},[2908],[36,3066,3068,3071],{"className":3067},[2912],[36,3069],{"className":3070,"style":2917},[2916],[36,3072,3059],{"className":3073,"style":3074},[2921,2922],"margin-right:0.05017em;","的运算，结果得到一个序列，就是",[36,3077,3079,3092],{"className":3078},[2882],[36,3080,3082],{"className":3081},[2886],[2888,3083,3084],{"xmlns":2890},[2892,3085,3086,3090],{},[2895,3087,3088],{},[2898,3089,2900],{},[2902,3091,2900],{"encoding":2904},[36,3093,3095],{"className":3094,"ariaHidden":1960},[2908],[36,3096,3098,3101],{"className":3097},[2912],[36,3099],{"className":3100,"style":2917},[2916],[36,3102,2900],{"className":3103},[2921,2922],"的所有元素后面跟上",[36,3106,3108,3121],{"className":3107},[2882],[36,3109,3111],{"className":3110},[2886],[2888,3112,3113],{"xmlns":2890},[2892,3114,3115,3119],{},[2895,3116,3117],{},[2898,3118,3059],{},[2902,3120,3059],{"encoding":2904},[36,3122,3124],{"className":3123,"ariaHidden":1960},[2908],[36,3125,3127,3130],{"className":3126},[2912],[36,3128],{"className":3129,"style":2917},[2916],[36,3131,3059],{"className":3132,"style":3074},[2921,2922],"的所有元素。记作",[36,3135,3137,3153],{"className":3136},[2882],[36,3138,3140],{"className":3139},[2886],[2888,3141,3142],{"xmlns":2890},[2892,3143,3144,3150],{},[2895,3145,3146,3148],{},[2898,3147,2900],{},[2898,3149,3059],{},[2902,3151,3152],{"encoding":2904},"AB",[36,3154,3156],{"className":3155,"ariaHidden":1960},[2908],[36,3157,3159,3162,3165],{"className":3158},[2912],[36,3160],{"className":3161,"style":2917},[2916],[36,3163,2900],{"className":3164},[2921,2922],[36,3166,3059],{"className":3167,"style":3074},[2921,2922],[11,3169,3170,3171,3199,3200],{},"题目定义一个序列",[36,3172,3174,3187],{"className":3173},[2882],[36,3175,3177],{"className":3176},[2886],[2888,3178,3179],{"xmlns":2890},[2892,3180,3181,3185],{},[2895,3182,3183],{},[2898,3184,2900],{},[2902,3186,2900],{"encoding":2904},[36,3188,3190],{"className":3189,"ariaHidden":1960},[2908],[36,3191,3193,3196],{"className":3192},[2912],[36,3194],{"className":3195,"style":2917},[2916],[36,3197,2900],{"className":3198},[2921,2922],"上的操作，操作后变为",[36,3201,3203,3229],{"className":3202},[2882],[36,3204,3206],{"className":3205},[2886],[2888,3207,3208],{"xmlns":2890},[2892,3209,3210,3226],{},[2895,3211,3212,3215,3217,3219,3222,3224],{},[2970,3213,117],{"stretchy":3214},"false",[2898,3216,2900],{},[2970,3218,2972],{},[3220,3221,218],"mn",{},[2970,3223,453],{"stretchy":3214},[2898,3225,2900],{},[2902,3227,3228],{"encoding":2904},"(A+1)A",[36,3230,3232,3255],{"className":3231,"ariaHidden":1960},[2908],[36,3233,3235,3239,3243,3246,3249,3252],{"className":3234},[2912],[36,3236],{"className":3237,"style":3238},[2916],"height:1em;vertical-align:-0.25em;",[36,3240,117],{"className":3241},[3242],"mopen",[36,3244,2900],{"className":3245},[2921,2922],[36,3247],{"className":3248,"style":2995},[2994],[36,3250,2972],{"className":3251},[2999],[36,3253],{"className":3254,"style":2995},[2994],[36,3256,3258,3261,3264,3268],{"className":3257},[2912],[36,3259],{"className":3260,"style":3238},[2916],[36,3262,218],{"className":3263},[2921],[36,3265,453],{"className":3266},[3267],"mclose",[36,3269,2900],{"className":3270},[2921,2922],[11,3272,3273,3274,3368,3369,3416,3417,3496],{},"题目给定一个初始序列，仅有一个元素",[36,3275,3277,3304],{"className":3276},[2882],[36,3278,3280],{"className":3279},[2886],[2888,3281,3282],{"xmlns":2890},[2892,3283,3284,3301],{},[2895,3285,3286,3288,3290,3299],{},[2898,3287,2938],{},[2970,3289,117],{"stretchy":3214},[3291,3292,3293,3296],"msup",{},[3220,3294,3295],{},"10",[3220,3297,3298],{},"5",[2970,3300,453],{"stretchy":3214},[2902,3302,3303],{"encoding":2904},"x(10^5)",[36,3305,3307],{"className":3306,"ariaHidden":1960},[2908],[36,3308,3310,3314,3317,3320,3323,3365],{"className":3309},[2912],[36,3311],{"className":3312,"style":3313},[2916],"height:1.0641em;vertical-align:-0.25em;",[36,3315,2938],{"className":3316},[2921,2922],[36,3318,117],{"className":3319},[3242],[36,3321,218],{"className":3322},[2921],[36,3324,3326,3330],{"className":3325},[2921],[36,3327,3329],{"className":3328},[2921],"0",[36,3331,3334],{"className":3332},[3333],"msupsub",[36,3335,3338],{"className":3336},[3337],"vlist-t",[36,3339,3342],{"className":3340},[3341],"vlist-r",[36,3343,3347],{"className":3344,"style":3346},[3345],"vlist","height:0.8141em;",[36,3348,3350,3355],{"style":3349},"top:-3.063em;margin-right:0.05em;",[36,3351],{"className":3352,"style":3354},[3353],"pstrut","height:2.7em;",[36,3356,3362],{"className":3357},[3358,3359,3360,3361],"sizing","reset-size6","size3","mtight",[36,3363,3298],{"className":3364},[2921,3361],[36,3366,453],{"className":3367},[3267],"，问进行",[36,3370,3372,3394],{"className":3371},[2882],[36,3373,3375],{"className":3374},[2886],[2888,3376,3377],{"xmlns":2890},[2892,3378,3379,3391],{},[2895,3380,3381,3384,3386,3389],{},[2898,3382,3383],{},"k",[2970,3385,117],{"stretchy":3214},[3220,3387,3388],{},"60",[2970,3390,453],{"stretchy":3214},[2902,3392,3393],{"encoding":2904},"k(60)",[36,3395,3397],{"className":3396,"ariaHidden":1960},[2908],[36,3398,3400,3403,3407,3410,3413],{"className":3399},[2912],[36,3401],{"className":3402,"style":3238},[2916],[36,3404,3383],{"className":3405,"style":3406},[2921,2922],"margin-right:0.03148em;",[36,3408,117],{"className":3409},[3242],[36,3411,3388],{"className":3412},[2921],[36,3414,453],{"className":3415},[3267],"次操作后，序列中第",[36,3418,3420,3446],{"className":3419},[2882],[36,3421,3423],{"className":3422},[2886],[2888,3424,3425],{"xmlns":2890},[2892,3426,3427,3443],{},[2895,3428,3429,3432,3434,3441],{},[2898,3430,3431],{},"m",[2970,3433,117],{"stretchy":3214},[3291,3435,3436,3439],{},[3220,3437,3438],{},"2",[3220,3440,3388],{},[2970,3442,453],{"stretchy":3214},[2902,3444,3445],{"encoding":2904},"m(2^{60})",[36,3447,3449],{"className":3448,"ariaHidden":1960},[2908],[36,3450,3452,3455,3458,3461,3493],{"className":3451},[2912],[36,3453],{"className":3454,"style":3313},[2916],[36,3456,3431],{"className":3457},[2921,2922],[36,3459,117],{"className":3460},[3242],[36,3462,3464,3467],{"className":3463},[2921],[36,3465,3438],{"className":3466},[2921],[36,3468,3470],{"className":3469},[3333],[36,3471,3473],{"className":3472},[3337],[36,3474,3476],{"className":3475},[3341],[36,3477,3479],{"className":3478,"style":3346},[3345],[36,3480,3481,3484],{"style":3349},[36,3482],{"className":3483,"style":3354},[3353],[36,3485,3487],{"className":3486},[3358,3359,3360,3361],[36,3488,3490],{"className":3489},[2921,3361],[36,3491,3388],{"className":3492},[2921,3361],[36,3494,453],{"className":3495},[3267],"个元素是什么。",[11,3498,3499,3500,3528,3529,3583,3584,3612],{},"这个手动模拟一下就知道，首先这个序列最后都只在",[36,3501,3503,3516],{"className":3502},[2882],[36,3504,3506],{"className":3505},[2886],[2888,3507,3508],{"xmlns":2890},[2892,3509,3510,3514],{},[2895,3511,3512],{},[2898,3513,2938],{},[2902,3515,2938],{"encoding":2904},[36,3517,3519],{"className":3518,"ariaHidden":1960},[2908],[36,3520,3522,3525],{"className":3521},[2912],[36,3523],{"className":3524,"style":2950},[2916],[36,3526,2938],{"className":3527},[2921,2922],"的基础上加一个常数，所以先按",[36,3530,3532,3550],{"className":3531},[2882],[36,3533,3535],{"className":3534},[2886],[2888,3536,3537],{"xmlns":2890},[2892,3538,3539,3547],{},[2895,3540,3541,3543,3545],{},[2898,3542,2938],{},[2970,3544,173],{},[3220,3546,3329],{},[2902,3548,3549],{"encoding":2904},"x=0",[36,3551,3553,3573],{"className":3552,"ariaHidden":1960},[2908],[36,3554,3556,3559,3562,3566,3570],{"className":3555},[2912],[36,3557],{"className":3558,"style":2950},[2916],[36,3560,2938],{"className":3561},[2921,2922],[36,3563],{"className":3564,"style":3565},[2994],"margin-right:0.2778em;",[36,3567,173],{"className":3568},[3569],"mrel",[36,3571],{"className":3572,"style":3565},[2994],[36,3574,3576,3580],{"className":3575},[2912],[36,3577],{"className":3578,"style":3579},[2916],"height:0.6444em;",[36,3581,3329],{"className":3582},[2921],"算到最后加上",[36,3585,3587,3600],{"className":3586},[2882],[36,3588,3590],{"className":3589},[2886],[2888,3591,3592],{"xmlns":2890},[2892,3593,3594,3598],{},[2895,3595,3596],{},[2898,3597,2938],{},[2902,3599,2938],{"encoding":2904},[36,3601,3603],{"className":3602,"ariaHidden":1960},[2908],[36,3604,3606,3609],{"className":3605},[2912],[36,3607],{"className":3608,"style":2950},[2916],[36,3610,2938],{"className":3611},[2921,2922],"即可。",[11,3614,3615],{},"然后注意到每次序列长度都是翻倍的，都是重复原序列的模式，那么很容易猜测和倍增有关。考试时间紧张，我直接从结果入手，看看最后的结果和他的下标二进制之间的关系。例如操作3次后，序列长度为8：",[3617,3618,3619,3646],"table",{},[3620,3621,3622],"thead",{},[3623,3624,3625,3629,3632,3634,3636,3638,3640,3642,3644],"tr",{},[3626,3627,3628],"th",{},"元素",[3626,3630,3631],{},"3",[3626,3633,3438],{},[3626,3635,3438],{},[3626,3637,218],{},[3626,3639,3438],{},[3626,3641,218],{},[3626,3643,218],{},[3626,3645,3329],{},[3647,3648,3649],"tbody",{},[3623,3650,3651,3655,3658,3661,3664,3667,3670,3673,3676],{},[3652,3653,3654],"td",{},"下标二进制",[3652,3656,3657],{},"000",[3652,3659,3660],{},"001",[3652,3662,3663],{},"010",[3652,3665,3666],{},"011",[3652,3668,3669],{},"100",[3652,3671,3672],{},"101",[3652,3674,3675],{},"110",[3652,3677,3678],{},"111",[11,3680,3681,3682,3686,3687,3789],{},"很容易观察出，结果和下标二进制中1的个数有关，就是",[3683,3684,3685],"strong",{},"操作次数-下标二进制中1的个数","。至于为什么这样也很容易证明，但出于时间考虑不用管那么多，直接写代码实现即可，复杂度",[36,3688,3690,3727],{"className":3689},[2882],[36,3691,3693],{"className":3692},[2886],[2888,3694,3695],{"xmlns":2890},[2892,3696,3697,3724],{},[2895,3698,3699,3702,3704,3707,3710,3712,3714,3716,3718,3720,3722],{},[2898,3700,3701],{},"O",[2970,3703,117],{"stretchy":3214},[2898,3705,3706],{},"log",[2970,3708,3709],{},"⁡",[2898,3711,3431],{},[2970,3713,453],{"stretchy":3214},[2970,3715,173],{},[2898,3717,3701],{},[2970,3719,117],{"stretchy":3214},[2898,3721,3383],{},[2970,3723,453],{"stretchy":3214},[2902,3725,3726],{"encoding":2904},"O(\\log m)=O(k)",[36,3728,3730,3771],{"className":3729,"ariaHidden":1960},[2908],[36,3731,3733,3736,3740,3743,3752,3756,3759,3762,3765,3768],{"className":3732},[2912],[36,3734],{"className":3735,"style":3238},[2916],[36,3737,3701],{"className":3738,"style":3739},[2921,2922],"margin-right:0.02778em;",[36,3741,117],{"className":3742},[3242],[36,3744,3747,3748],{"className":3745},[3746],"mop","lo",[36,3749,3751],{"style":3750},"margin-right:0.01389em;","g",[36,3753],{"className":3754,"style":3755},[2994],"margin-right:0.1667em;",[36,3757,3431],{"className":3758},[2921,2922],[36,3760,453],{"className":3761},[3267],[36,3763],{"className":3764,"style":3565},[2994],[36,3766,173],{"className":3767},[3569],[36,3769],{"className":3770,"style":3565},[2994],[36,3772,3774,3777,3780,3783,3786],{"className":3773},[2912],[36,3775],{"className":3776,"style":3238},[2916],[36,3778,3701],{"className":3779,"style":3739},[2921,2922],[36,3781,117],{"className":3782},[3242],[36,3784,3383],{"className":3785,"style":3406},[2921,2922],[36,3787,453],{"className":3788},[3267],"，AC。",[15,3791],{},[11,3793,3794],{},"然后是一道安排时间的问题，题目大意如下：",[2874,3796,3797,3800,3803,3916,4015,4112,4175,4318,4321,4427],{},[11,3798,3799],{},"某个银行只有一名业务员，只能同时处理一个人的业务。",[11,3801,3802],{},"由于业务员人数有限，所以除了正在办理业务的人以外，其他所有人都需要等待前一个人的业务完成。",[11,3804,3805,3806,3884,3885,3915],{},"共有 ",[36,3807,3809,3834],{"className":3808},[2882],[36,3810,3812],{"className":3811},[2886],[2888,3813,3814],{"xmlns":2890},[2892,3815,3816,3831],{},[2895,3817,3818,3821,3823,3829],{},[2898,3819,3820],{},"n",[2970,3822,117],{"stretchy":3214},[3291,3824,3825,3827],{},[3220,3826,3295],{},[3220,3828,3298],{},[2970,3830,453],{"stretchy":3214},[2902,3832,3833],{"encoding":2904},"n(10^5)",[36,3835,3837],{"className":3836,"ariaHidden":1960},[2908],[36,3838,3840,3843,3846,3849,3852,3881],{"className":3839},[2912],[36,3841],{"className":3842,"style":3313},[2916],[36,3844,3820],{"className":3845},[2921,2922],[36,3847,117],{"className":3848},[3242],[36,3850,218],{"className":3851},[2921],[36,3853,3855,3858],{"className":3854},[2921],[36,3856,3329],{"className":3857},[2921],[36,3859,3861],{"className":3860},[3333],[36,3862,3864],{"className":3863},[3337],[36,3865,3867],{"className":3866},[3341],[36,3868,3870],{"className":3869,"style":3346},[3345],[36,3871,3872,3875],{"style":3349},[36,3873],{"className":3874,"style":3354},[3353],[36,3876,3878],{"className":3877},[3358,3359,3360,3361],[36,3879,3298],{"className":3880},[2921,3361],[36,3882,453],{"className":3883},[3267]," 个人，每个人都有一个需要办理的业务。\n对于第 ",[36,3886,3888,3902],{"className":3887},[2882],[36,3889,3891],{"className":3890},[2886],[2888,3892,3893],{"xmlns":2890},[2892,3894,3895,3900],{},[2895,3896,3897],{},[2898,3898,3899],{},"i",[2902,3901,3899],{"encoding":2904},[36,3903,3905],{"className":3904,"ariaHidden":1960},[2908],[36,3906,3908,3912],{"className":3907},[2912],[36,3909],{"className":3910,"style":3911},[2916],"height:0.6595em;",[36,3913,3899],{"className":3914},[2921,2922]," 个人：",[11,3917,3918,3919,4014],{},"他的业务基础办理时间为 ",[36,3920,3922,3955],{"className":3921},[2882],[36,3923,3925],{"className":3924},[2886],[2888,3926,3927],{"xmlns":2890},[2892,3928,3929,3952],{},[2895,3930,3931,3934,3937,3939,3942,3944,3950],{},[2898,3932,3933],{},"a",[2970,3935,3936],{"stretchy":3214},"[",[2898,3938,3899],{},[2970,3940,3941],{"stretchy":3214},"]",[2970,3943,117],{"stretchy":3214},[3291,3945,3946,3948],{},[3220,3947,3295],{},[3220,3949,3298],{},[2970,3951,453],{"stretchy":3214},[2902,3953,3954],{"encoding":2904},"a[i](10^5)",[36,3956,3958],{"className":3957,"ariaHidden":1960},[2908],[36,3959,3961,3964,3967,3970,3973,3976,3979,3982,4011],{"className":3960},[2912],[36,3962],{"className":3963,"style":3313},[2916],[36,3965,3933],{"className":3966},[2921,2922],[36,3968,3936],{"className":3969},[3242],[36,3971,3899],{"className":3972},[2921,2922],[36,3974,3941],{"className":3975},[3267],[36,3977,117],{"className":3978},[3242],[36,3980,218],{"className":3981},[2921],[36,3983,3985,3988],{"className":3984},[2921],[36,3986,3329],{"className":3987},[2921],[36,3989,3991],{"className":3990},[3333],[36,3992,3994],{"className":3993},[3337],[36,3995,3997],{"className":3996},[3341],[36,3998,4000],{"className":3999,"style":3346},[3345],[36,4001,4002,4005],{"style":3349},[36,4003],{"className":4004,"style":3354},[3353],[36,4006,4008],{"className":4007},[3358,3359,3360,3361],[36,4009,3298],{"className":4010},[2921,3361],[36,4012,453],{"className":4013},[3267]," 分钟；",[11,4016,4017,4018,4111],{},"若他每等待 1 分钟，其最终办理时间会额外增加 ",[36,4019,4021,4052],{"className":4020},[2882],[36,4022,4024],{"className":4023},[2886],[2888,4025,4026],{"xmlns":2890},[2892,4027,4028,4049],{},[2895,4029,4030,4033,4035,4037,4039,4041,4047],{},[2898,4031,4032],{},"b",[2970,4034,3936],{"stretchy":3214},[2898,4036,3899],{},[2970,4038,3941],{"stretchy":3214},[2970,4040,117],{"stretchy":3214},[3291,4042,4043,4045],{},[3220,4044,3295],{},[3220,4046,3298],{},[2970,4048,453],{"stretchy":3214},[2902,4050,4051],{"encoding":2904},"b[i](10^5)",[36,4053,4055],{"className":4054,"ariaHidden":1960},[2908],[36,4056,4058,4061,4064,4067,4070,4073,4076,4079,4108],{"className":4057},[2912],[36,4059],{"className":4060,"style":3313},[2916],[36,4062,4032],{"className":4063},[2921,2922],[36,4065,3936],{"className":4066},[3242],[36,4068,3899],{"className":4069},[2921,2922],[36,4071,3941],{"className":4072},[3267],[36,4074,117],{"className":4075},[3242],[36,4077,218],{"className":4078},[2921],[36,4080,4082,4085],{"className":4081},[2921],[36,4083,3329],{"className":4084},[2921],[36,4086,4088],{"className":4087},[3333],[36,4089,4091],{"className":4090},[3337],[36,4092,4094],{"className":4093},[3341],[36,4095,4097],{"className":4096,"style":3346},[3345],[36,4098,4099,4102],{"style":3349},[36,4100],{"className":4101,"style":3354},[3353],[36,4103,4105],{"className":4104},[3358,3359,3360,3361],[36,4106,3298],{"className":4107},[2921,3361],[36,4109,453],{"className":4110},[3267]," 分钟。",[11,4113,4114,4115,4143,4144,4174],{},"因此如果第 ",[36,4116,4118,4131],{"className":4117},[2882],[36,4119,4121],{"className":4120},[2886],[2888,4122,4123],{"xmlns":2890},[2892,4124,4125,4129],{},[2895,4126,4127],{},[2898,4128,3899],{},[2902,4130,3899],{"encoding":2904},[36,4132,4134],{"className":4133,"ariaHidden":1960},[2908],[36,4135,4137,4140],{"className":4136},[2912],[36,4138],{"className":4139,"style":3911},[2916],[36,4141,3899],{"className":4142},[2921,2922]," 个人的等待时间为 ",[36,4145,4147,4161],{"className":4146},[2882],[36,4148,4150],{"className":4149},[2886],[2888,4151,4152],{"xmlns":2890},[2892,4153,4154,4159],{},[2895,4155,4156],{},[2898,4157,4158],{},"w",[2902,4160,4158],{"encoding":2904},[36,4162,4164],{"className":4163,"ariaHidden":1960},[2908],[36,4165,4167,4170],{"className":4166},[2912],[36,4168],{"className":4169,"style":2950},[2916],[36,4171,4158],{"className":4172,"style":4173},[2921,2922],"margin-right:0.02691em;","，则他的实际办理时间为：",[11,4176,4177],{},[36,4178,4180,4225],{"className":4179},[2882],[36,4181,4183],{"className":4182},[2886],[2888,4184,4185],{"xmlns":2890},[2892,4186,4187,4222],{},[2895,4188,4189,4191,4193,4195,4197,4199,4201,4203,4205,4207,4209,4211,4213,4215,4217,4220],{},[2898,4190,11],{},[2970,4192,3936],{"stretchy":3214},[2898,4194,3899],{},[2970,4196,3941],{"stretchy":3214},[2970,4198,173],{},[2898,4200,3933],{},[2970,4202,3936],{"stretchy":3214},[2898,4204,3899],{},[2970,4206,3941],{"stretchy":3214},[2970,4208,2972],{},[2898,4210,4032],{},[2970,4212,3936],{"stretchy":3214},[2898,4214,3899],{},[2970,4216,3941],{"stretchy":3214},[2970,4218,4219],{},"×",[2898,4221,4158],{},[2902,4223,4224],{"encoding":2904},"p[i] = a[i] + b[i] \\times w",[36,4226,4228,4255,4282,4309],{"className":4227,"ariaHidden":1960},[2908],[36,4229,4231,4234,4237,4240,4243,4246,4249,4252],{"className":4230},[2912],[36,4232],{"className":4233,"style":3238},[2916],[36,4235,11],{"className":4236},[2921,2922],[36,4238,3936],{"className":4239},[3242],[36,4241,3899],{"className":4242},[2921,2922],[36,4244,3941],{"className":4245},[3267],[36,4247],{"className":4248,"style":3565},[2994],[36,4250,173],{"className":4251},[3569],[36,4253],{"className":4254,"style":3565},[2994],[36,4256,4258,4261,4264,4267,4270,4273,4276,4279],{"className":4257},[2912],[36,4259],{"className":4260,"style":3238},[2916],[36,4262,3933],{"className":4263},[2921,2922],[36,4265,3936],{"className":4266},[3242],[36,4268,3899],{"className":4269},[2921,2922],[36,4271,3941],{"className":4272},[3267],[36,4274],{"className":4275,"style":2995},[2994],[36,4277,2972],{"className":4278},[2999],[36,4280],{"className":4281,"style":2995},[2994],[36,4283,4285,4288,4291,4294,4297,4300,4303,4306],{"className":4284},[2912],[36,4286],{"className":4287,"style":3238},[2916],[36,4289,4032],{"className":4290},[2921,2922],[36,4292,3936],{"className":4293},[3242],[36,4295,3899],{"className":4296},[2921,2922],[36,4298,3941],{"className":4299},[3267],[36,4301],{"className":4302,"style":2995},[2994],[36,4304,4219],{"className":4305},[2999],[36,4307],{"className":4308,"style":2995},[2994],[36,4310,4312,4315],{"className":4311},[2912],[36,4313],{"className":4314,"style":2950},[2916],[36,4316,4158],{"className":4317,"style":4173},[2921,2922],[11,4319,4320],{},"每个人的总耗时（等待时间 + 办理时间）为：",[11,4322,4323],{},[36,4324,4326,4360],{"className":4325},[2882],[36,4327,4329],{"className":4328},[2886],[2888,4330,4331],{"xmlns":2890},[2892,4332,4333,4357],{},[2895,4334,4335,4337,4339,4341,4343,4345,4347,4349,4351,4353,4355],{},[2898,4336,2199],{},[2970,4338,3936],{"stretchy":3214},[2898,4340,3899],{},[2970,4342,3941],{"stretchy":3214},[2970,4344,173],{},[2898,4346,4158],{},[2970,4348,2972],{},[2898,4350,11],{},[2970,4352,3936],{"stretchy":3214},[2898,4354,3899],{},[2970,4356,3941],{"stretchy":3214},[2902,4358,4359],{"encoding":2904},"t[i] = w + p[i]",[36,4361,4363,4390,4409],{"className":4362,"ariaHidden":1960},[2908],[36,4364,4366,4369,4372,4375,4378,4381,4384,4387],{"className":4365},[2912],[36,4367],{"className":4368,"style":3238},[2916],[36,4370,2199],{"className":4371},[2921,2922],[36,4373,3936],{"className":4374},[3242],[36,4376,3899],{"className":4377},[2921,2922],[36,4379,3941],{"className":4380},[3267],[36,4382],{"className":4383,"style":3565},[2994],[36,4385,173],{"className":4386},[3569],[36,4388],{"className":4389,"style":3565},[2994],[36,4391,4393,4397,4400,4403,4406],{"className":4392},[2912],[36,4394],{"className":4395,"style":4396},[2916],"height:0.6667em;vertical-align:-0.0833em;",[36,4398,4158],{"className":4399,"style":4173},[2921,2922],[36,4401],{"className":4402,"style":2995},[2994],[36,4404,2972],{"className":4405},[2999],[36,4407],{"className":4408,"style":2995},[2994],[36,4410,4412,4415,4418,4421,4424],{"className":4411},[2912],[36,4413],{"className":4414,"style":3238},[2916],[36,4416,11],{"className":4417},[2921,2922],[36,4419,3936],{"className":4420},[3242],[36,4422,3899],{"className":4423},[2921,2922],[36,4425,3941],{"className":4426},[3267],[11,4428,4429,4430,4481,4482,4568],{},"最小化 ",[36,4431,4433,4457],{"className":4432},[2882],[36,4434,4436],{"className":4435},[2886],[2888,4437,4438],{"xmlns":2890},[2892,4439,4440,4454],{},[2895,4441,4442,4446,4448,4450,4452],{},[2898,4443,4445],{"mathvariant":4444},"normal","Σ",[2898,4447,2199],{},[2970,4449,3936],{"stretchy":3214},[2898,4451,3899],{},[2970,4453,3941],{"stretchy":3214},[2902,4455,4456],{"encoding":2904},"\\Sigma t[i]",[36,4458,4460],{"className":4459,"ariaHidden":1960},[2908],[36,4461,4463,4466,4469,4472,4475,4478],{"className":4462},[2912],[36,4464],{"className":4465,"style":3238},[2916],[36,4467,4445],{"className":4468},[2921],[36,4470,2199],{"className":4471},[2921,2922],[36,4473,3936],{"className":4474},[3242],[36,4476,3899],{"className":4477},[2921,2922],[36,4479,3941],{"className":4480},[3267]," 并输出。答案对 ",[36,4483,4485,4508],{"className":4484},[2882],[36,4486,4488],{"className":4487},[2886],[2888,4489,4490],{"xmlns":2890},[2892,4491,4492,4505],{},[2895,4493,4494,4501,4503],{},[3291,4495,4496,4498],{},[3220,4497,3295],{},[3220,4499,4500],{},"9",[2970,4502,2972],{},[3220,4504,4500],{},[2902,4506,4507],{"encoding":2904},"10^9 + 9",[36,4509,4511,4559],{"className":4510,"ariaHidden":1960},[2908],[36,4512,4514,4518,4521,4550,4553,4556],{"className":4513},[2912],[36,4515],{"className":4516,"style":4517},[2916],"height:0.8974em;vertical-align:-0.0833em;",[36,4519,218],{"className":4520},[2921],[36,4522,4524,4527],{"className":4523},[2921],[36,4525,3329],{"className":4526},[2921],[36,4528,4530],{"className":4529},[3333],[36,4531,4533],{"className":4532},[3337],[36,4534,4536],{"className":4535},[3341],[36,4537,4539],{"className":4538,"style":3346},[3345],[36,4540,4541,4544],{"style":3349},[36,4542],{"className":4543,"style":3354},[3353],[36,4545,4547],{"className":4546},[3358,3359,3360,3361],[36,4548,4500],{"className":4549},[2921,3361],[36,4551],{"className":4552,"style":2995},[2994],[36,4554,2972],{"className":4555},[2999],[36,4557],{"className":4558,"style":2995},[2994],[36,4560,4562,4565],{"className":4561},[2912],[36,4563],{"className":4564,"style":3579},[2916],[36,4566,4500],{"className":4567},[2921]," 取模。",[11,4570,4571],{},"乍一看，这不是排队接水吗。看得我很难绷，想起初中训练的时候教练没讲清楚就抓人上去写排队接水，我们几个就去百度，结果百度全是这种：",[4573,4574,4576,4577,4576,4581],"figure",{"style":4575},"max-width: 50%;","\n  ",[4578,4579],"img",{"src":4580},"/post-photos/queue_water.jpg",[4582,4583,4584],"figcaption",{},"排队接水",[11,4586,4587],{},"我就在下面开始偷笑，同伴还严肃提醒我这样态度不对且会引起老师注意。",[11,4589,4590,4591,4665,4666,4669,4670,4698,4699,4730,4731,3012],{},"回到题目上，乍一看这一题是NP-hard，但是分析一下结果那么大，还让取模，必然不是像背包那样的DP，数据范围卡得很死，也不可能是",[36,4592,4594,4618],{"className":4593},[2882],[36,4595,4597],{"className":4596},[2886],[2888,4598,4599],{"xmlns":2890},[2892,4600,4601,4615],{},[2895,4602,4603,4605,4607,4613],{},[2898,4604,3701],{},[2970,4606,117],{"stretchy":3214},[3291,4608,4609,4611],{},[2898,4610,3820],{},[3220,4612,3438],{},[2970,4614,453],{"stretchy":3214},[2902,4616,4617],{"encoding":2904},"O(n^2)",[36,4619,4621],{"className":4620,"ariaHidden":1960},[2908],[36,4622,4624,4627,4630,4633,4662],{"className":4623},[2912],[36,4625],{"className":4626,"style":3313},[2916],[36,4628,3701],{"className":4629,"style":3739},[2921,2922],[36,4631,117],{"className":4632},[3242],[36,4634,4636,4639],{"className":4635},[2921],[36,4637,3820],{"className":4638},[2921,2922],[36,4640,4642],{"className":4641},[3333],[36,4643,4645],{"className":4644},[3337],[36,4646,4648],{"className":4647},[3341],[36,4649,4651],{"className":4650,"style":3346},[3345],[36,4652,4653,4656],{"style":3349},[36,4654],{"className":4655,"style":3354},[3353],[36,4657,4659],{"className":4658},[3358,3359,3360,3361],[36,4660,3438],{"className":4661},[2921,3361],[36,4663,453],{"className":4664},[3267],"，估计是贪心。但是想半天也没想出来，因为排队接水每个人任务量是固定的，不会等得越多时间越长啊，但考虑一下这个排队接水的本质，就是",[3683,4667,4668],{},"两个任务交换的代价差和位置无关","，那么就算一下交换前后的代价。\n考虑两个相邻任务 ",[36,4671,4673,4686],{"className":4672},[2882],[36,4674,4676],{"className":4675},[2886],[2888,4677,4678],{"xmlns":2890},[2892,4679,4680,4684],{},[2895,4681,4682],{},[2898,4683,3899],{},[2902,4685,3899],{"encoding":2904},[36,4687,4689],{"className":4688,"ariaHidden":1960},[2908],[36,4690,4692,4695],{"className":4691},[2912],[36,4693],{"className":4694,"style":3911},[2916],[36,4696,3899],{"className":4697},[2921,2922],"、",[36,4700,4702,4716],{"className":4701},[2882],[36,4703,4705],{"className":4704},[2886],[2888,4706,4707],{"xmlns":2890},[2892,4708,4709,4714],{},[2895,4710,4711],{},[2898,4712,4713],{},"j",[2902,4715,4713],{"encoding":2904},[36,4717,4719],{"className":4718,"ariaHidden":1960},[2908],[36,4720,4722,4726],{"className":4721},[2912],[36,4723],{"className":4724,"style":4725},[2916],"height:0.854em;vertical-align:-0.1944em;",[36,4727,4713],{"className":4728,"style":4729},[2921,2922],"margin-right:0.05724em;",", 前方已经处理的总工作量为 ",[36,4732,4734,4747],{"className":4733},[2882],[36,4735,4737],{"className":4736},[2886],[2888,4738,4739],{"xmlns":2890},[2892,4740,4741,4745],{},[2895,4742,4743],{},[2898,4744,728],{},[2902,4746,728],{"encoding":2904},[36,4748,4750],{"className":4749,"ariaHidden":1960},[2908],[36,4751,4753,4756],{"className":4752},[2912],[36,4754],{"className":4755,"style":2917},[2916],[36,4757,728],{"className":4758,"style":4759},[2921,2922],"margin-right:0.13889em;",[4761,4762,4763],"ul",{},[4764,4765,4766,4767,4819],"li",{},"顺序 ",[36,4768,4770,4789],{"className":4769},[2882],[36,4771,4773],{"className":4772},[2886],[2888,4774,4775],{"xmlns":2890},[2892,4776,4777,4786],{},[2895,4778,4779,4781,4784],{},[2898,4780,3899],{},[2970,4782,4783],{},"→",[2898,4785,4713],{},[2902,4787,4788],{"encoding":2904},"i → j",[36,4790,4792,4810],{"className":4791,"ariaHidden":1960},[2908],[36,4793,4795,4798,4801,4804,4807],{"className":4794},[2912],[36,4796],{"className":4797,"style":3911},[2916],[36,4799,3899],{"className":4800},[2921,2922],[36,4802],{"className":4803,"style":3565},[2994],[36,4805,4783],{"className":4806},[3569],[36,4808],{"className":4809,"style":3565},[2994],[36,4811,4813,4816],{"className":4812},[2912],[36,4814],{"className":4815,"style":4725},[2916],[36,4817,4713],{"className":4818,"style":4729},[2921,2922]," 的增量：",[11,4821,4822],{},[36,4823,4825,4864],{"className":4824},[2882],[36,4826,4828],{"className":4827},[2886],[2888,4829,4830],{"xmlns":2890},[2892,4831,4832,4861],{},[2895,4833,4834,4841,4843,4849,4851,4857,4859],{},[4835,4836,4837,4839],"msub",{},[2898,4838,11],{},[2898,4840,3899],{},[2970,4842,173],{},[4835,4844,4845,4847],{},[2898,4846,3933],{},[2898,4848,3899],{},[2970,4850,2972],{},[4835,4852,4853,4855],{},[2898,4854,4032],{},[2898,4856,3899],{},[2970,4858,4219],{},[2898,4860,728],{},[2902,4862,4863],{"encoding":2904},"p_i = a_i + b_i \\times T",[36,4865,4867,4929,4985,5041],{"className":4866,"ariaHidden":1960},[2908],[36,4868,4870,4874,4920,4923,4926],{"className":4869},[2912],[36,4871],{"className":4872,"style":4873},[2916],"height:0.625em;vertical-align:-0.1944em;",[36,4875,4877,4880],{"className":4876},[2921],[36,4878,11],{"className":4879},[2921,2922],[36,4881,4883],{"className":4882},[3333],[36,4884,4887,4911],{"className":4885},[3337,4886],"vlist-t2",[36,4888,4890,4906],{"className":4889},[3341],[36,4891,4894],{"className":4892,"style":4893},[3345],"height:0.3117em;",[36,4895,4897,4900],{"style":4896},"top:-2.55em;margin-left:0em;margin-right:0.05em;",[36,4898],{"className":4899,"style":3354},[3353],[36,4901,4903],{"className":4902},[3358,3359,3360,3361],[36,4904,3899],{"className":4905},[2921,2922,3361],[36,4907,4910],{"className":4908},[4909],"vlist-s","​",[36,4912,4914],{"className":4913},[3341],[36,4915,4918],{"className":4916,"style":4917},[3345],"height:0.15em;",[36,4919],{},[36,4921],{"className":4922,"style":3565},[2994],[36,4924,173],{"className":4925},[3569],[36,4927],{"className":4928,"style":3565},[2994],[36,4930,4932,4936,4976,4979,4982],{"className":4931},[2912],[36,4933],{"className":4934,"style":4935},[2916],"height:0.7333em;vertical-align:-0.15em;",[36,4937,4939,4942],{"className":4938},[2921],[36,4940,3933],{"className":4941},[2921,2922],[36,4943,4945],{"className":4944},[3333],[36,4946,4948,4968],{"className":4947},[3337,4886],[36,4949,4951,4965],{"className":4950},[3341],[36,4952,4954],{"className":4953,"style":4893},[3345],[36,4955,4956,4959],{"style":4896},[36,4957],{"className":4958,"style":3354},[3353],[36,4960,4962],{"className":4961},[3358,3359,3360,3361],[36,4963,3899],{"className":4964},[2921,2922,3361],[36,4966,4910],{"className":4967},[4909],[36,4969,4971],{"className":4970},[3341],[36,4972,4974],{"className":4973,"style":4917},[3345],[36,4975],{},[36,4977],{"className":4978,"style":2995},[2994],[36,4980,2972],{"className":4981},[2999],[36,4983],{"className":4984,"style":2995},[2994],[36,4986,4988,4992,5032,5035,5038],{"className":4987},[2912],[36,4989],{"className":4990,"style":4991},[2916],"height:0.8444em;vertical-align:-0.15em;",[36,4993,4995,4998],{"className":4994},[2921],[36,4996,4032],{"className":4997},[2921,2922],[36,4999,5001],{"className":5000},[3333],[36,5002,5004,5024],{"className":5003},[3337,4886],[36,5005,5007,5021],{"className":5006},[3341],[36,5008,5010],{"className":5009,"style":4893},[3345],[36,5011,5012,5015],{"style":4896},[36,5013],{"className":5014,"style":3354},[3353],[36,5016,5018],{"className":5017},[3358,3359,3360,3361],[36,5019,3899],{"className":5020},[2921,2922,3361],[36,5022,4910],{"className":5023},[4909],[36,5025,5027],{"className":5026},[3341],[36,5028,5030],{"className":5029,"style":4917},[3345],[36,5031],{},[36,5033],{"className":5034,"style":2995},[2994],[36,5036,4219],{"className":5037},[2999],[36,5039],{"className":5040,"style":2995},[2994],[36,5042,5044,5047],{"className":5043},[2912],[36,5045],{"className":5046,"style":2917},[2916],[36,5048,728],{"className":5049,"style":4759},[2921,2922],[11,5051,5052],{},[36,5053,5055,5105],{"className":5054},[2882],[36,5056,5058],{"className":5057},[2886],[2888,5059,5060],{"xmlns":2890},[2892,5061,5062,5102],{},[2895,5063,5064,5070,5072,5078,5080,5086,5088,5090,5092,5094,5100],{},[4835,5065,5066,5068],{},[2898,5067,11],{},[2898,5069,4713],{},[2970,5071,173],{},[4835,5073,5074,5076],{},[2898,5075,3933],{},[2898,5077,4713],{},[2970,5079,2972],{},[4835,5081,5082,5084],{},[2898,5083,4032],{},[2898,5085,4713],{},[2970,5087,4219],{},[2970,5089,117],{"stretchy":3214},[2898,5091,728],{},[2970,5093,2972],{},[4835,5095,5096,5098],{},[2898,5097,11],{},[2898,5099,3899],{},[2970,5101,453],{"stretchy":3214},[2902,5103,5104],{"encoding":2904},"p_j = a_j + b_j \\times (T + p_i)",[36,5106,5108,5165,5221,5277,5298],{"className":5107,"ariaHidden":1960},[2908],[36,5109,5111,5115,5156,5159,5162],{"className":5110},[2912],[36,5112],{"className":5113,"style":5114},[2916],"height:0.7167em;vertical-align:-0.2861em;",[36,5116,5118,5121],{"className":5117},[2921],[36,5119,11],{"className":5120},[2921,2922],[36,5122,5124],{"className":5123},[3333],[36,5125,5127,5147],{"className":5126},[3337,4886],[36,5128,5130,5144],{"className":5129},[3341],[36,5131,5133],{"className":5132,"style":4893},[3345],[36,5134,5135,5138],{"style":4896},[36,5136],{"className":5137,"style":3354},[3353],[36,5139,5141],{"className":5140},[3358,3359,3360,3361],[36,5142,4713],{"className":5143,"style":4729},[2921,2922,3361],[36,5145,4910],{"className":5146},[4909],[36,5148,5150],{"className":5149},[3341],[36,5151,5154],{"className":5152,"style":5153},[3345],"height:0.2861em;",[36,5155],{},[36,5157],{"className":5158,"style":3565},[2994],[36,5160,173],{"className":5161},[3569],[36,5163],{"className":5164,"style":3565},[2994],[36,5166,5168,5172,5212,5215,5218],{"className":5167},[2912],[36,5169],{"className":5170,"style":5171},[2916],"height:0.8694em;vertical-align:-0.2861em;",[36,5173,5175,5178],{"className":5174},[2921],[36,5176,3933],{"className":5177},[2921,2922],[36,5179,5181],{"className":5180},[3333],[36,5182,5184,5204],{"className":5183},[3337,4886],[36,5185,5187,5201],{"className":5186},[3341],[36,5188,5190],{"className":5189,"style":4893},[3345],[36,5191,5192,5195],{"style":4896},[36,5193],{"className":5194,"style":3354},[3353],[36,5196,5198],{"className":5197},[3358,3359,3360,3361],[36,5199,4713],{"className":5200,"style":4729},[2921,2922,3361],[36,5202,4910],{"className":5203},[4909],[36,5205,5207],{"className":5206},[3341],[36,5208,5210],{"className":5209,"style":5153},[3345],[36,5211],{},[36,5213],{"className":5214,"style":2995},[2994],[36,5216,2972],{"className":5217},[2999],[36,5219],{"className":5220,"style":2995},[2994],[36,5222,5224,5228,5268,5271,5274],{"className":5223},[2912],[36,5225],{"className":5226,"style":5227},[2916],"height:0.9805em;vertical-align:-0.2861em;",[36,5229,5231,5234],{"className":5230},[2921],[36,5232,4032],{"className":5233},[2921,2922],[36,5235,5237],{"className":5236},[3333],[36,5238,5240,5260],{"className":5239},[3337,4886],[36,5241,5243,5257],{"className":5242},[3341],[36,5244,5246],{"className":5245,"style":4893},[3345],[36,5247,5248,5251],{"style":4896},[36,5249],{"className":5250,"style":3354},[3353],[36,5252,5254],{"className":5253},[3358,3359,3360,3361],[36,5255,4713],{"className":5256,"style":4729},[2921,2922,3361],[36,5258,4910],{"className":5259},[4909],[36,5261,5263],{"className":5262},[3341],[36,5264,5266],{"className":5265,"style":5153},[3345],[36,5267],{},[36,5269],{"className":5270,"style":2995},[2994],[36,5272,4219],{"className":5273},[2999],[36,5275],{"className":5276,"style":2995},[2994],[36,5278,5280,5283,5286,5289,5292,5295],{"className":5279},[2912],[36,5281],{"className":5282,"style":3238},[2916],[36,5284,117],{"className":5285},[3242],[36,5287,728],{"className":5288,"style":4759},[2921,2922],[36,5290],{"className":5291,"style":2995},[2994],[36,5293,2972],{"className":5294},[2999],[36,5296],{"className":5297,"style":2995},[2994],[36,5299,5301,5304,5344],{"className":5300},[2912],[36,5302],{"className":5303,"style":3238},[2916],[36,5305,5307,5310],{"className":5306},[2921],[36,5308,11],{"className":5309},[2921,2922],[36,5311,5313],{"className":5312},[3333],[36,5314,5316,5336],{"className":5315},[3337,4886],[36,5317,5319,5333],{"className":5318},[3341],[36,5320,5322],{"className":5321,"style":4893},[3345],[36,5323,5324,5327],{"style":4896},[36,5325],{"className":5326,"style":3354},[3353],[36,5328,5330],{"className":5329},[3358,3359,3360,3361],[36,5331,3899],{"className":5332},[2921,2922,3361],[36,5334,4910],{"className":5335},[4909],[36,5337,5339],{"className":5338},[3341],[36,5340,5342],{"className":5341,"style":4917},[3345],[36,5343],{},[36,5345,453],{"className":5346},[3267],[4761,5348,5349],{},[4764,5350,4766,5351,4819],{},[36,5352,5354,5372],{"className":5353},[2882],[36,5355,5357],{"className":5356},[2886],[2888,5358,5359],{"xmlns":2890},[2892,5360,5361,5369],{},[2895,5362,5363,5365,5367],{},[2898,5364,4713],{},[2970,5366,4783],{},[2898,5368,3899],{},[2902,5370,5371],{"encoding":2904},"j → i",[36,5373,5375,5393],{"className":5374,"ariaHidden":1960},[2908],[36,5376,5378,5381,5384,5387,5390],{"className":5377},[2912],[36,5379],{"className":5380,"style":4725},[2916],[36,5382,4713],{"className":5383,"style":4729},[2921,2922],[36,5385],{"className":5386,"style":3565},[2994],[36,5388,4783],{"className":5389},[3569],[36,5391],{"className":5392,"style":3565},[2994],[36,5394,5396,5399],{"className":5395},[2912],[36,5397],{"className":5398,"style":3911},[2916],[36,5400,3899],{"className":5401},[2921,2922],[11,5403,5404],{},[36,5405,5407,5450],{"className":5406},[2882],[36,5408,5410],{"className":5409},[2886],[2888,5411,5412],{"xmlns":2890},[2892,5413,5414,5447],{},[2895,5415,5416,5427,5429,5435,5437,5443,5445],{},[5417,5418,5419,5421,5423],"msubsup",{},[2898,5420,11],{},[2898,5422,4713],{},[2970,5424,5426],{"mathvariant":4444,"lspace":5425,"rspace":5425},"0em","′",[2970,5428,173],{},[4835,5430,5431,5433],{},[2898,5432,3933],{},[2898,5434,4713],{},[2970,5436,2972],{},[4835,5438,5439,5441],{},[2898,5440,4032],{},[2898,5442,4713],{},[2970,5444,4219],{},[2898,5446,728],{},[2902,5448,5449],{"encoding":2904},"p'_j = a_j + b_j \\times T",[36,5451,5453,5526,5581,5636],{"className":5452,"ariaHidden":1960},[2908],[36,5454,5456,5460,5517,5520,5523],{"className":5455},[2912],[36,5457],{"className":5458,"style":5459},[2916],"height:1.1467em;vertical-align:-0.3948em;",[36,5461,5463,5466],{"className":5462},[2921],[36,5464,11],{"className":5465},[2921,2922],[36,5467,5469],{"className":5468},[3333],[36,5470,5472,5508],{"className":5471},[3337,4886],[36,5473,5475,5505],{"className":5474},[3341],[36,5476,5479,5491],{"className":5477,"style":5478},[3345],"height:0.7519em;",[36,5480,5482,5485],{"style":5481},"top:-2.4413em;margin-left:0em;margin-right:0.05em;",[36,5483],{"className":5484,"style":3354},[3353],[36,5486,5488],{"className":5487},[3358,3359,3360,3361],[36,5489,4713],{"className":5490,"style":4729},[2921,2922,3361],[36,5492,5493,5496],{"style":3349},[36,5494],{"className":5495,"style":3354},[3353],[36,5497,5499],{"className":5498},[3358,3359,3360,3361],[36,5500,5502],{"className":5501},[2921,3361],[36,5503,5426],{"className":5504},[2921,3361],[36,5506,4910],{"className":5507},[4909],[36,5509,5511],{"className":5510},[3341],[36,5512,5515],{"className":5513,"style":5514},[3345],"height:0.3948em;",[36,5516],{},[36,5518],{"className":5519,"style":3565},[2994],[36,5521,173],{"className":5522},[3569],[36,5524],{"className":5525,"style":3565},[2994],[36,5527,5529,5532,5572,5575,5578],{"className":5528},[2912],[36,5530],{"className":5531,"style":5171},[2916],[36,5533,5535,5538],{"className":5534},[2921],[36,5536,3933],{"className":5537},[2921,2922],[36,5539,5541],{"className":5540},[3333],[36,5542,5544,5564],{"className":5543},[3337,4886],[36,5545,5547,5561],{"className":5546},[3341],[36,5548,5550],{"className":5549,"style":4893},[3345],[36,5551,5552,5555],{"style":4896},[36,5553],{"className":5554,"style":3354},[3353],[36,5556,5558],{"className":5557},[3358,3359,3360,3361],[36,5559,4713],{"className":5560,"style":4729},[2921,2922,3361],[36,5562,4910],{"className":5563},[4909],[36,5565,5567],{"className":5566},[3341],[36,5568,5570],{"className":5569,"style":5153},[3345],[36,5571],{},[36,5573],{"className":5574,"style":2995},[2994],[36,5576,2972],{"className":5577},[2999],[36,5579],{"className":5580,"style":2995},[2994],[36,5582,5584,5587,5627,5630,5633],{"className":5583},[2912],[36,5585],{"className":5586,"style":5227},[2916],[36,5588,5590,5593],{"className":5589},[2921],[36,5591,4032],{"className":5592},[2921,2922],[36,5594,5596],{"className":5595},[3333],[36,5597,5599,5619],{"className":5598},[3337,4886],[36,5600,5602,5616],{"className":5601},[3341],[36,5603,5605],{"className":5604,"style":4893},[3345],[36,5606,5607,5610],{"style":4896},[36,5608],{"className":5609,"style":3354},[3353],[36,5611,5613],{"className":5612},[3358,3359,3360,3361],[36,5614,4713],{"className":5615,"style":4729},[2921,2922,3361],[36,5617,4910],{"className":5618},[4909],[36,5620,5622],{"className":5621},[3341],[36,5623,5625],{"className":5624,"style":5153},[3345],[36,5626],{},[36,5628],{"className":5629,"style":2995},[2994],[36,5631,4219],{"className":5632},[2999],[36,5634],{"className":5635,"style":2995},[2994],[36,5637,5639,5642],{"className":5638},[2912],[36,5640],{"className":5641,"style":2917},[2916],[36,5643,728],{"className":5644,"style":4759},[2921,2922],[11,5646,5647],{},[36,5648,5650,5704],{"className":5649},[2882],[36,5651,5653],{"className":5652},[2886],[2888,5654,5655],{"xmlns":2890},[2892,5656,5657,5701],{},[2895,5658,5659,5667,5669,5675,5677,5683,5685,5687,5689,5691,5699],{},[5417,5660,5661,5663,5665],{},[2898,5662,11],{},[2898,5664,3899],{},[2970,5666,5426],{"mathvariant":4444,"lspace":5425,"rspace":5425},[2970,5668,173],{},[4835,5670,5671,5673],{},[2898,5672,3933],{},[2898,5674,3899],{},[2970,5676,2972],{},[4835,5678,5679,5681],{},[2898,5680,4032],{},[2898,5682,3899],{},[2970,5684,4219],{},[2970,5686,117],{"stretchy":3214},[2898,5688,728],{},[2970,5690,2972],{},[5417,5692,5693,5695,5697],{},[2898,5694,11],{},[2898,5696,4713],{},[2970,5698,5426],{"mathvariant":4444,"lspace":5425,"rspace":5425},[2970,5700,453],{"stretchy":3214},[2902,5702,5703],{"encoding":2904},"p'_i = a_i + b_i \\times (T + p'_j)",[36,5705,5707,5778,5833,5888,5909],{"className":5706,"ariaHidden":1960},[2908],[36,5708,5710,5714,5769,5772,5775],{"className":5709},[2912],[36,5711],{"className":5712,"style":5713},[2916],"height:1.0106em;vertical-align:-0.2587em;",[36,5715,5717,5720],{"className":5716},[2921],[36,5718,11],{"className":5719},[2921,2922],[36,5721,5723],{"className":5722},[3333],[36,5724,5726,5760],{"className":5725},[3337,4886],[36,5727,5729,5757],{"className":5728},[3341],[36,5730,5732,5743],{"className":5731,"style":5478},[3345],[36,5733,5734,5737],{"style":5481},[36,5735],{"className":5736,"style":3354},[3353],[36,5738,5740],{"className":5739},[3358,3359,3360,3361],[36,5741,3899],{"className":5742},[2921,2922,3361],[36,5744,5745,5748],{"style":3349},[36,5746],{"className":5747,"style":3354},[3353],[36,5749,5751],{"className":5750},[3358,3359,3360,3361],[36,5752,5754],{"className":5753},[2921,3361],[36,5755,5426],{"className":5756},[2921,3361],[36,5758,4910],{"className":5759},[4909],[36,5761,5763],{"className":5762},[3341],[36,5764,5767],{"className":5765,"style":5766},[3345],"height:0.2587em;",[36,5768],{},[36,5770],{"className":5771,"style":3565},[2994],[36,5773,173],{"className":5774},[3569],[36,5776],{"className":5777,"style":3565},[2994],[36,5779,5781,5784,5824,5827,5830],{"className":5780},[2912],[36,5782],{"className":5783,"style":4935},[2916],[36,5785,5787,5790],{"className":5786},[2921],[36,5788,3933],{"className":5789},[2921,2922],[36,5791,5793],{"className":5792},[3333],[36,5794,5796,5816],{"className":5795},[3337,4886],[36,5797,5799,5813],{"className":5798},[3341],[36,5800,5802],{"className":5801,"style":4893},[3345],[36,5803,5804,5807],{"style":4896},[36,5805],{"className":5806,"style":3354},[3353],[36,5808,5810],{"className":5809},[3358,3359,3360,3361],[36,5811,3899],{"className":5812},[2921,2922,3361],[36,5814,4910],{"className":5815},[4909],[36,5817,5819],{"className":5818},[3341],[36,5820,5822],{"className":5821,"style":4917},[3345],[36,5823],{},[36,5825],{"className":5826,"style":2995},[2994],[36,5828,2972],{"className":5829},[2999],[36,5831],{"className":5832,"style":2995},[2994],[36,5834,5836,5839,5879,5882,5885],{"className":5835},[2912],[36,5837],{"className":5838,"style":4991},[2916],[36,5840,5842,5845],{"className":5841},[2921],[36,5843,4032],{"className":5844},[2921,2922],[36,5846,5848],{"className":5847},[3333],[36,5849,5851,5871],{"className":5850},[3337,4886],[36,5852,5854,5868],{"className":5853},[3341],[36,5855,5857],{"className":5856,"style":4893},[3345],[36,5858,5859,5862],{"style":4896},[36,5860],{"className":5861,"style":3354},[3353],[36,5863,5865],{"className":5864},[3358,3359,3360,3361],[36,5866,3899],{"className":5867},[2921,2922,3361],[36,5869,4910],{"className":5870},[4909],[36,5872,5874],{"className":5873},[3341],[36,5875,5877],{"className":5876,"style":4917},[3345],[36,5878],{},[36,5880],{"className":5881,"style":2995},[2994],[36,5883,4219],{"className":5884},[2999],[36,5886],{"className":5887,"style":2995},[2994],[36,5889,5891,5894,5897,5900,5903,5906],{"className":5890},[2912],[36,5892],{"className":5893,"style":3238},[2916],[36,5895,117],{"className":5896},[3242],[36,5898,728],{"className":5899,"style":4759},[2921,2922],[36,5901],{"className":5902,"style":2995},[2994],[36,5904,2972],{"className":5905},[2999],[36,5907],{"className":5908,"style":2995},[2994],[36,5910,5912,5915,5969],{"className":5911},[2912],[36,5913],{"className":5914,"style":5459},[2916],[36,5916,5918,5921],{"className":5917},[2921],[36,5919,11],{"className":5920},[2921,2922],[36,5922,5924],{"className":5923},[3333],[36,5925,5927,5961],{"className":5926},[3337,4886],[36,5928,5930,5958],{"className":5929},[3341],[36,5931,5933,5944],{"className":5932,"style":5478},[3345],[36,5934,5935,5938],{"style":5481},[36,5936],{"className":5937,"style":3354},[3353],[36,5939,5941],{"className":5940},[3358,3359,3360,3361],[36,5942,4713],{"className":5943,"style":4729},[2921,2922,3361],[36,5945,5946,5949],{"style":3349},[36,5947],{"className":5948,"style":3354},[3353],[36,5950,5952],{"className":5951},[3358,3359,3360,3361],[36,5953,5955],{"className":5954},[2921,3361],[36,5956,5426],{"className":5957},[2921,3361],[36,5959,4910],{"className":5960},[4909],[36,5962,5964],{"className":5963},[3341],[36,5965,5967],{"className":5966,"style":5514},[3345],[36,5968],{},[36,5970,453],{"className":5971},[3267],[4761,5973,5974],{},[4764,5975,5976],{},"时间和的差值：",[11,5978,5979],{},[36,5980,5982,6046],{"className":5981},[2882],[36,5983,5985],{"className":5984},[2886],[2888,5986,5987],{"xmlns":2890},[2892,5988,5989,6043],{},[2895,5990,5991,5993,6000,6003,6005,6007,6009,6011,6017,6019,6025,6027,6033,6035,6041],{},[2970,5992,117],{"stretchy":3214},[3291,5994,5995,5998],{},[2898,5996,5997],{},"C",[2970,5999,5426],{"mathvariant":4444,"lspace":5425,"rspace":5425},[2970,6001,6002],{},"−",[2898,6004,5997],{},[2970,6006,453],{"stretchy":3214},[2970,6008,173],{},[2970,6010,117],{"stretchy":3214},[4835,6012,6013,6015],{},[2898,6014,3933],{},[2898,6016,4713],{},[2970,6018,4219],{},[4835,6020,6021,6023],{},[2898,6022,4032],{},[2898,6024,3899],{},[2970,6026,6002],{},[4835,6028,6029,6031],{},[2898,6030,3933],{},[2898,6032,3899],{},[2970,6034,4219],{},[4835,6036,6037,6039],{},[2898,6038,4032],{},[2898,6040,4713],{},[2970,6042,453],{"stretchy":3214},[2902,6044,6045],{"encoding":2904},"(C' − C) = (a_j \\times b_i − a_i \\times b_j)",[36,6047,6049,6101,6122,6181,6236,6291],{"className":6048,"ariaHidden":1960},[2908],[36,6050,6052,6056,6059,6092,6095,6098],{"className":6051},[2912],[36,6053],{"className":6054,"style":6055},[2916],"height:1.0019em;vertical-align:-0.25em;",[36,6057,117],{"className":6058},[3242],[36,6060,6062,6066],{"className":6061},[2921],[36,6063,5997],{"className":6064,"style":6065},[2921,2922],"margin-right:0.07153em;",[36,6067,6069],{"className":6068},[3333],[36,6070,6072],{"className":6071},[3337],[36,6073,6075],{"className":6074},[3341],[36,6076,6078],{"className":6077,"style":5478},[3345],[36,6079,6080,6083],{"style":3349},[36,6081],{"className":6082,"style":3354},[3353],[36,6084,6086],{"className":6085},[3358,3359,3360,3361],[36,6087,6089],{"className":6088},[2921,3361],[36,6090,5426],{"className":6091},[2921,3361],[36,6093],{"className":6094,"style":2995},[2994],[36,6096,6002],{"className":6097},[2999],[36,6099],{"className":6100,"style":2995},[2994],[36,6102,6104,6107,6110,6113,6116,6119],{"className":6103},[2912],[36,6105],{"className":6106,"style":3238},[2916],[36,6108,5997],{"className":6109,"style":6065},[2921,2922],[36,6111,453],{"className":6112},[3267],[36,6114],{"className":6115,"style":3565},[2994],[36,6117,173],{"className":6118},[3569],[36,6120],{"className":6121,"style":3565},[2994],[36,6123,6125,6129,6132,6172,6175,6178],{"className":6124},[2912],[36,6126],{"className":6127,"style":6128},[2916],"height:1.0361em;vertical-align:-0.2861em;",[36,6130,117],{"className":6131},[3242],[36,6133,6135,6138],{"className":6134},[2921],[36,6136,3933],{"className":6137},[2921,2922],[36,6139,6141],{"className":6140},[3333],[36,6142,6144,6164],{"className":6143},[3337,4886],[36,6145,6147,6161],{"className":6146},[3341],[36,6148,6150],{"className":6149,"style":4893},[3345],[36,6151,6152,6155],{"style":4896},[36,6153],{"className":6154,"style":3354},[3353],[36,6156,6158],{"className":6157},[3358,3359,3360,3361],[36,6159,4713],{"className":6160,"style":4729},[2921,2922,3361],[36,6162,4910],{"className":6163},[4909],[36,6165,6167],{"className":6166},[3341],[36,6168,6170],{"className":6169,"style":5153},[3345],[36,6171],{},[36,6173],{"className":6174,"style":2995},[2994],[36,6176,4219],{"className":6177},[2999],[36,6179],{"className":6180,"style":2995},[2994],[36,6182,6184,6187,6227,6230,6233],{"className":6183},[2912],[36,6185],{"className":6186,"style":4991},[2916],[36,6188,6190,6193],{"className":6189},[2921],[36,6191,4032],{"className":6192},[2921,2922],[36,6194,6196],{"className":6195},[3333],[36,6197,6199,6219],{"className":6198},[3337,4886],[36,6200,6202,6216],{"className":6201},[3341],[36,6203,6205],{"className":6204,"style":4893},[3345],[36,6206,6207,6210],{"style":4896},[36,6208],{"className":6209,"style":3354},[3353],[36,6211,6213],{"className":6212},[3358,3359,3360,3361],[36,6214,3899],{"className":6215},[2921,2922,3361],[36,6217,4910],{"className":6218},[4909],[36,6220,6222],{"className":6221},[3341],[36,6223,6225],{"className":6224,"style":4917},[3345],[36,6226],{},[36,6228],{"className":6229,"style":2995},[2994],[36,6231,6002],{"className":6232},[2999],[36,6234],{"className":6235,"style":2995},[2994],[36,6237,6239,6242,6282,6285,6288],{"className":6238},[2912],[36,6240],{"className":6241,"style":4935},[2916],[36,6243,6245,6248],{"className":6244},[2921],[36,6246,3933],{"className":6247},[2921,2922],[36,6249,6251],{"className":6250},[3333],[36,6252,6254,6274],{"className":6253},[3337,4886],[36,6255,6257,6271],{"className":6256},[3341],[36,6258,6260],{"className":6259,"style":4893},[3345],[36,6261,6262,6265],{"style":4896},[36,6263],{"className":6264,"style":3354},[3353],[36,6266,6268],{"className":6267},[3358,3359,3360,3361],[36,6269,3899],{"className":6270},[2921,2922,3361],[36,6272,4910],{"className":6273},[4909],[36,6275,6277],{"className":6276},[3341],[36,6278,6280],{"className":6279,"style":4917},[3345],[36,6281],{},[36,6283],{"className":6284,"style":2995},[2994],[36,6286,4219],{"className":6287},[2999],[36,6289],{"className":6290,"style":2995},[2994],[36,6292,6294,6297,6337],{"className":6293},[2912],[36,6295],{"className":6296,"style":6128},[2916],[36,6298,6300,6303],{"className":6299},[2921],[36,6301,4032],{"className":6302},[2921,2922],[36,6304,6306],{"className":6305},[3333],[36,6307,6309,6329],{"className":6308},[3337,4886],[36,6310,6312,6326],{"className":6311},[3341],[36,6313,6315],{"className":6314,"style":4893},[3345],[36,6316,6317,6320],{"style":4896},[36,6318],{"className":6319,"style":3354},[3353],[36,6321,6323],{"className":6322},[3358,3359,3360,3361],[36,6324,4713],{"className":6325,"style":4729},[2921,2922,3361],[36,6327,4910],{"className":6328},[4909],[36,6330,6332],{"className":6331},[3341],[36,6333,6335],{"className":6334,"style":5153},[3345],[36,6336],{},[36,6338,453],{"className":6339},[3267],[11,6341,6342,6343,6371,6372,6400,6401,6429,6430,6753,6754,3789],{},"可以观察到这个结果并不包含",[36,6344,6346,6359],{"className":6345},[2882],[36,6347,6349],{"className":6348},[2886],[2888,6350,6351],{"xmlns":2890},[2892,6352,6353,6357],{},[2895,6354,6355],{},[2898,6356,728],{},[2902,6358,728],{"encoding":2904},[36,6360,6362],{"className":6361,"ariaHidden":1960},[2908],[36,6363,6365,6368],{"className":6364},[2912],[36,6366],{"className":6367,"style":2917},[2916],[36,6369,728],{"className":6370,"style":4759},[2921,2922],"，那么",[36,6373,6375,6388],{"className":6374},[2882],[36,6376,6378],{"className":6377},[2886],[2888,6379,6380],{"xmlns":2890},[2892,6381,6382,6386],{},[2895,6383,6384],{},[2898,6385,3899],{},[2902,6387,3899],{"encoding":2904},[36,6389,6391],{"className":6390,"ariaHidden":1960},[2908],[36,6392,6394,6397],{"className":6393},[2912],[36,6395],{"className":6396,"style":3911},[2916],[36,6398,3899],{"className":6399},[2921,2922]," 和 ",[36,6402,6404,6417],{"className":6403},[2882],[36,6405,6407],{"className":6406},[2886],[2888,6408,6409],{"xmlns":2890},[2892,6410,6411,6415],{},[2895,6412,6413],{},[2898,6414,4713],{},[2902,6416,4713],{"encoding":2904},[36,6418,6420],{"className":6419,"ariaHidden":1960},[2908],[36,6421,6423,6426],{"className":6422},[2912],[36,6424],{"className":6425,"style":4725},[2916],[36,6427,4713],{"className":6428,"style":4729},[2921,2922]," 的相对顺序只取决于",[36,6431,6433,6485],{"className":6432},[2882],[36,6434,6436],{"className":6435},[2886],[2888,6437,6438],{"xmlns":2890},[2892,6439,6440,6482],{},[2895,6441,6442,6448,6450,6456,6468,6474,6476],{},[4835,6443,6444,6446],{},[2898,6445,3933],{},[2898,6447,3899],{},[2970,6449,4219],{},[4835,6451,6452,6454],{},[2898,6453,4032],{},[2898,6455,4713],{},[2970,6457,6458],{},[6459,6460,6461,6466],"mover",{},[2970,6462,6463],{},[2970,6464,6465],{},"≤",[2970,6467,1315],{"stretchy":3214,"lspace":5425,"rspace":5425},[4835,6469,6470,6472],{},[2898,6471,3933],{},[2898,6473,4713],{},[2970,6475,4219],{},[4835,6477,6478,6480],{},[2898,6479,4032],{},[2898,6481,3899],{},[2902,6483,6484],{"encoding":2904},"a_i \\times b_j \\stackrel{?}{\\le}  a_j \\times b_i",[36,6486,6488,6543,6652,6707],{"className":6487,"ariaHidden":1960},[2908],[36,6489,6491,6494,6534,6537,6540],{"className":6490},[2912],[36,6492],{"className":6493,"style":4935},[2916],[36,6495,6497,6500],{"className":6496},[2921],[36,6498,3933],{"className":6499},[2921,2922],[36,6501,6503],{"className":6502},[3333],[36,6504,6506,6526],{"className":6505},[3337,4886],[36,6507,6509,6523],{"className":6508},[3341],[36,6510,6512],{"className":6511,"style":4893},[3345],[36,6513,6514,6517],{"style":4896},[36,6515],{"className":6516,"style":3354},[3353],[36,6518,6520],{"className":6519},[3358,3359,3360,3361],[36,6521,3899],{"className":6522},[2921,2922,3361],[36,6524,4910],{"className":6525},[4909],[36,6527,6529],{"className":6528},[3341],[36,6530,6532],{"className":6531,"style":4917},[3345],[36,6533],{},[36,6535],{"className":6536,"style":2995},[2994],[36,6538,4219],{"className":6539},[2999],[36,6541],{"className":6542,"style":2995},[2994],[36,6544,6546,6550,6590,6593,6649],{"className":6545},[2912],[36,6547],{"className":6548,"style":6549},[2916],"height:1.7082em;vertical-align:-0.2861em;",[36,6551,6553,6556],{"className":6552},[2921],[36,6554,4032],{"className":6555},[2921,2922],[36,6557,6559],{"className":6558},[3333],[36,6560,6562,6582],{"className":6561},[3337,4886],[36,6563,6565,6579],{"className":6564},[3341],[36,6566,6568],{"className":6567,"style":4893},[3345],[36,6569,6570,6573],{"style":4896},[36,6571],{"className":6572,"style":3354},[3353],[36,6574,6576],{"className":6575},[3358,3359,3360,3361],[36,6577,4713],{"className":6578,"style":4729},[2921,2922,3361],[36,6580,4910],{"className":6581},[4909],[36,6583,6585],{"className":6584},[3341],[36,6586,6588],{"className":6587,"style":5153},[3345],[36,6589],{},[36,6591],{"className":6592,"style":3565},[2994],[36,6594,6596],{"className":6595},[3569],[36,6597,6600],{"className":6598},[3746,6599],"op-limits",[36,6601,6603,6640],{"className":6602},[3337,4886],[36,6604,6606,6637],{"className":6605},[3341],[36,6607,6610,6622],{"className":6608,"style":6609},[3345],"height:1.4221em;",[36,6611,6613,6617],{"style":6612},"top:-3em;",[36,6614],{"className":6615,"style":6616},[3353],"height:3em;",[36,6618,6619],{},[36,6620,6465],{"className":6621},[3746],[36,6623,6625,6628],{"style":6624},"top:-3.836em;margin-left:0em;",[36,6626],{"className":6627,"style":6616},[3353],[36,6629,6631],{"className":6630},[3358,3359,3360,3361],[36,6632,6634],{"className":6633},[2921,3361],[36,6635,1315],{"className":6636},[3267,3361],[36,6638,4910],{"className":6639},[4909],[36,6641,6643],{"className":6642},[3341],[36,6644,6647],{"className":6645,"style":6646},[3345],"height:0.136em;",[36,6648],{},[36,6650],{"className":6651,"style":3565},[2994],[36,6653,6655,6658,6698,6701,6704],{"className":6654},[2912],[36,6656],{"className":6657,"style":5171},[2916],[36,6659,6661,6664],{"className":6660},[2921],[36,6662,3933],{"className":6663},[2921,2922],[36,6665,6667],{"className":6666},[3333],[36,6668,6670,6690],{"className":6669},[3337,4886],[36,6671,6673,6687],{"className":6672},[3341],[36,6674,6676],{"className":6675,"style":4893},[3345],[36,6677,6678,6681],{"style":4896},[36,6679],{"className":6680,"style":3354},[3353],[36,6682,6684],{"className":6683},[3358,3359,3360,3361],[36,6685,4713],{"className":6686,"style":4729},[2921,2922,3361],[36,6688,4910],{"className":6689},[4909],[36,6691,6693],{"className":6692},[3341],[36,6694,6696],{"className":6695,"style":5153},[3345],[36,6697],{},[36,6699],{"className":6700,"style":2995},[2994],[36,6702,4219],{"className":6703},[2999],[36,6705],{"className":6706,"style":2995},[2994],[36,6708,6710,6713],{"className":6709},[2912],[36,6711],{"className":6712,"style":4991},[2916],[36,6714,6716,6719],{"className":6715},[2921],[36,6717,4032],{"className":6718},[2921,2922],[36,6720,6722],{"className":6721},[3333],[36,6723,6725,6745],{"className":6724},[3337,4886],[36,6726,6728,6742],{"className":6727},[3341],[36,6729,6731],{"className":6730,"style":4893},[3345],[36,6732,6733,6736],{"style":4896},[36,6734],{"className":6735,"style":3354},[3353],[36,6737,6739],{"className":6738},[3358,3359,3360,3361],[36,6740,3899],{"className":6741},[2921,2922,3361],[36,6743,4910],{"className":6744},[4909],[36,6746,6748],{"className":6747},[3341],[36,6749,6751],{"className":6750,"style":4917},[3345],[36,6752],{},"，这个和有代价的排队接水是一样的。那么就可以放心贪心了，把这个比较关系作为排序的依据开始模拟即可。复杂度",[36,6755,6757,6783],{"className":6756},[2882],[36,6758,6760],{"className":6759},[2886],[2888,6761,6762],{"xmlns":2890},[2892,6763,6764,6780],{},[2895,6765,6766,6768,6770,6772,6774,6776,6778],{},[2898,6767,3701],{},[2970,6769,117],{"stretchy":3214},[2898,6771,3820],{},[2898,6773,3706],{},[2970,6775,3709],{},[2898,6777,3820],{},[2970,6779,453],{"stretchy":3214},[2902,6781,6782],{"encoding":2904},"O(n \\log n)",[36,6784,6786],{"className":6785,"ariaHidden":1960},[2908],[36,6787,6789,6792,6795,6798,6801,6804,6809,6812,6815],{"className":6788},[2912],[36,6790],{"className":6791,"style":3238},[2916],[36,6793,3701],{"className":6794,"style":3739},[2921,2922],[36,6796,117],{"className":6797},[3242],[36,6799,3820],{"className":6800},[2921,2922],[36,6802],{"className":6803,"style":3755},[2994],[36,6805,3747,6807],{"className":6806},[3746],[36,6808,3751],{"style":3750},[36,6810],{"className":6811,"style":3755},[2994],[36,6813,3820],{"className":6814},[2921,2922],[36,6816,453],{"className":6817},[3267],[26,6819,6821],{"className":28,"code":6820,"language":30,"meta":31,"style":31},"#include \u003Ccstdio>\n#include \u003Calgorithm>\n#define ll long long\nusing namespace std;\n\nconst ll MOD = 1000000009LL; \n\nstruct Person {\n    ll a, b;\n}v[10005];\nll n;\n\nbool cmp(const Person &x, const Person &y) {\n    return (__int128)x.a * y.b \u003C (__int128)y.a * x.b;\n}\n\nint main() {\n    scanf(\"%lld\", &n);\n    for (int i = 1; i \u003C= n; i++)scanf(\"%lld%lld\", &v[i].a, &v[i].b);\n\n    sort(v + 1, v + n + 1, cmp);\n\n    ll wait = 0;   \n    ll ac  = 0;   \n\n    for (auto &p : v) {\n        ll cur = ( (p.a % MOD) + (wait % MOD) * (p.b % MOD) % MOD ) % MOD;\n        ac = (ac + cur) % MOD;\n        wait = (wait + cur) % MOD;  \n    }\n\n    printf(\"%lld\", ac % MOD);\n    return 0;\n}\n",[33,6822,6823,6830,6837,6851,6861,6865,6884,6888,6898,6908,6924,6929,6933,6965,7009,7013,7017,7025,7047,7112,7116,7147,7151,7163,7174,7178,7196,7251,7270,7288,7292,7296,7319,7327],{"__ignoreMap":31},[36,6824,6825,6827],{"class":38,"line":39},[36,6826,43],{"class":42},[36,6828,6829],{"class":46}," \u003Ccstdio>\n",[36,6831,6832,6834],{"class":38,"line":50},[36,6833,43],{"class":42},[36,6835,6836],{"class":46}," \u003Calgorithm>\n",[36,6838,6839,6842,6845,6848],{"class":38,"line":58},[36,6840,6841],{"class":42},"#define",[36,6843,6844],{"class":113}," ll",[36,6846,6847],{"class":42}," long",[36,6849,6850],{"class":42}," long\n",[36,6852,6853,6855,6857,6859],{"class":38,"line":65},[36,6854,68],{"class":42},[36,6856,71],{"class":42},[36,6858,75],{"class":74},[36,6860,79],{"class":78},[36,6862,6863],{"class":38,"line":82},[36,6864,62],{"emptyLinePlaceholder":61},[36,6866,6867,6869,6872,6874,6877,6881],{"class":38,"line":87},[36,6868,786],{"class":42},[36,6870,6871],{"class":78}," ll MOD ",[36,6873,173],{"class":42},[36,6875,6876],{"class":217}," 1000000009",[36,6878,6880],{"class":6879},"s9UT7","LL",[36,6882,6883],{"class":78},"; \n",[36,6885,6886],{"class":38,"line":100},[36,6887,62],{"emptyLinePlaceholder":61},[36,6889,6890,6893,6896],{"class":38,"line":110},[36,6891,6892],{"class":42},"struct",[36,6894,6895],{"class":93}," Person",[36,6897,97],{"class":78},[36,6899,6900,6903,6905],{"class":38,"line":140},[36,6901,6902],{"class":78},"    ll a",[36,6904,259],{"class":130},[36,6906,6907],{"class":78}," b;\n",[36,6909,6910,6913,6916,6918,6921],{"class":38,"line":145},[36,6911,6912],{"class":78},"}",[36,6914,6915],{"class":176},"v",[36,6917,3936],{"class":78},[36,6919,6920],{"class":217},"10005",[36,6922,6923],{"class":78},"];\n",[36,6925,6926],{"class":38,"line":164},[36,6927,6928],{"class":78},"ll n;\n",[36,6930,6931],{"class":38,"line":189},[36,6932,62],{"emptyLinePlaceholder":61},[36,6934,6935,6938,6941,6943,6945,6947,6949,6951,6953,6956,6958,6960,6963],{"class":38,"line":223},[36,6936,6937],{"class":42},"bool",[36,6939,6940],{"class":113}," cmp",[36,6942,117],{"class":78},[36,6944,786],{"class":42},[36,6946,6895],{"class":93},[36,6948,936],{"class":42},[36,6950,2938],{"class":123},[36,6952,259],{"class":130},[36,6954,6955],{"class":42}," const",[36,6957,6895],{"class":93},[36,6959,936],{"class":42},[36,6961,6962],{"class":123},"y",[36,6964,161],{"class":78},[36,6966,6967,6970,6973,6975,6977,6979,6981,6984,6986,6988,6990,6992,6994,6996,6998,7000,7003,7005,7007],{"class":38,"line":228},[36,6968,6969],{"class":42},"    return",[36,6971,6972],{"class":78}," (__int128)",[36,6974,2938],{"class":176},[36,6976,180],{"class":130},[36,6978,3933],{"class":273},[36,6980,991],{"class":42},[36,6982,6983],{"class":176}," y",[36,6985,180],{"class":130},[36,6987,4032],{"class":273},[36,6989,687],{"class":42},[36,6991,6972],{"class":78},[36,6993,6962],{"class":176},[36,6995,180],{"class":130},[36,6997,3933],{"class":273},[36,6999,991],{"class":42},[36,7001,7002],{"class":176}," x",[36,7004,180],{"class":130},[36,7006,4032],{"class":273},[36,7008,79],{"class":78},[36,7010,7011],{"class":38,"line":235},[36,7012,2086],{"class":78},[36,7014,7015],{"class":38,"line":280},[36,7016,62],{"emptyLinePlaceholder":61},[36,7018,7019,7021,7023],{"class":38,"line":298},[36,7020,120],{"class":42},[36,7022,2097],{"class":113},[36,7024,1091],{"class":78},[36,7026,7027,7030,7032,7035,7038,7040,7042,7044],{"class":38,"line":304},[36,7028,7029],{"class":113},"    scanf",[36,7031,117],{"class":78},[36,7033,7034],{"class":46},"\"",[36,7036,7037],{"class":217},"%lld",[36,7039,7034],{"class":46},[36,7041,259],{"class":130},[36,7043,936],{"class":935},[36,7045,7046],{"class":78},"n);\n",[36,7048,7049,7051,7053,7055,7057,7059,7061,7063,7066,7069,7071,7073,7076,7078,7080,7083,7085,7087,7089,7091,7094,7096,7098,7100,7102,7104,7106,7108,7110],{"class":38,"line":309},[36,7050,2119],{"class":42},[36,7052,926],{"class":78},[36,7054,120],{"class":42},[36,7056,2126],{"class":78},[36,7058,173],{"class":42},[36,7060,2272],{"class":217},[36,7062,2133],{"class":78},[36,7064,7065],{"class":42},"\u003C=",[36,7067,7068],{"class":78}," n; i",[36,7070,1400],{"class":42},[36,7072,453],{"class":78},[36,7074,7075],{"class":113},"scanf",[36,7077,117],{"class":78},[36,7079,7034],{"class":46},[36,7081,7082],{"class":217},"%lld%lld",[36,7084,7034],{"class":46},[36,7086,259],{"class":130},[36,7088,936],{"class":935},[36,7090,6915],{"class":176},[36,7092,7093],{"class":78},"[i]",[36,7095,180],{"class":130},[36,7097,3933],{"class":273},[36,7099,259],{"class":130},[36,7101,936],{"class":935},[36,7103,6915],{"class":176},[36,7105,7093],{"class":78},[36,7107,180],{"class":130},[36,7109,4032],{"class":273},[36,7111,277],{"class":78},[36,7113,7114],{"class":38,"line":334},[36,7115,62],{"emptyLinePlaceholder":61},[36,7117,7118,7121,7124,7126,7128,7130,7133,7135,7138,7140,7142,7144],{"class":38,"line":351},[36,7119,7120],{"class":113},"    sort",[36,7122,7123],{"class":78},"(v ",[36,7125,2972],{"class":42},[36,7127,2272],{"class":217},[36,7129,259],{"class":130},[36,7131,7132],{"class":78}," v ",[36,7134,2972],{"class":42},[36,7136,7137],{"class":78}," n ",[36,7139,2972],{"class":42},[36,7141,2272],{"class":217},[36,7143,259],{"class":130},[36,7145,7146],{"class":78}," cmp);\n",[36,7148,7149],{"class":38,"line":370},[36,7150,62],{"emptyLinePlaceholder":61},[36,7152,7153,7156,7158,7160],{"class":38,"line":390},[36,7154,7155],{"class":78},"    ll wait ",[36,7157,173],{"class":42},[36,7159,1649],{"class":217},[36,7161,7162],{"class":78},";   \n",[36,7164,7165,7168,7170,7172],{"class":38,"line":424},[36,7166,7167],{"class":78},"    ll ac  ",[36,7169,173],{"class":42},[36,7171,1649],{"class":217},[36,7173,7162],{"class":78},[36,7175,7176],{"class":38,"line":432},[36,7177,62],{"emptyLinePlaceholder":61},[36,7179,7180,7182,7184,7186,7188,7191,7193],{"class":38,"line":438},[36,7181,2119],{"class":42},[36,7183,926],{"class":78},[36,7185,2186],{"class":42},[36,7187,936],{"class":935},[36,7189,7190],{"class":78},"p ",[36,7192,131],{"class":130},[36,7194,7195],{"class":78}," v) {\n",[36,7197,7198,7201,7203,7206,7208,7210,7212,7215,7218,7220,7223,7225,7227,7229,7231,7233,7235,7237,7239,7241,7243,7246,7248],{"class":38,"line":443},[36,7199,7200],{"class":78},"        ll cur ",[36,7202,173],{"class":42},[36,7204,7205],{"class":78}," ( (",[36,7207,11],{"class":176},[36,7209,180],{"class":130},[36,7211,3933],{"class":273},[36,7213,7214],{"class":42}," %",[36,7216,7217],{"class":78}," MOD) ",[36,7219,2972],{"class":42},[36,7221,7222],{"class":78}," (wait ",[36,7224,2364],{"class":42},[36,7226,7217],{"class":78},[36,7228,731],{"class":42},[36,7230,926],{"class":78},[36,7232,11],{"class":176},[36,7234,180],{"class":130},[36,7236,4032],{"class":273},[36,7238,7214],{"class":42},[36,7240,7217],{"class":78},[36,7242,2364],{"class":42},[36,7244,7245],{"class":78}," MOD ) ",[36,7247,2364],{"class":42},[36,7249,7250],{"class":78}," MOD;\n",[36,7252,7253,7256,7258,7261,7263,7266,7268],{"class":38,"line":471},[36,7254,7255],{"class":78},"        ac ",[36,7257,173],{"class":42},[36,7259,7260],{"class":78}," (ac ",[36,7262,2972],{"class":42},[36,7264,7265],{"class":78}," cur) ",[36,7267,2364],{"class":42},[36,7269,7250],{"class":78},[36,7271,7272,7275,7277,7279,7281,7283,7285],{"class":38,"line":498},[36,7273,7274],{"class":78},"        wait ",[36,7276,173],{"class":42},[36,7278,7222],{"class":78},[36,7280,2972],{"class":42},[36,7282,7265],{"class":78},[36,7284,2364],{"class":42},[36,7286,7287],{"class":78}," MOD;  \n",[36,7289,7290],{"class":38,"line":512},[36,7291,301],{"class":78},[36,7293,7294],{"class":38,"line":525},[36,7295,62],{"emptyLinePlaceholder":61},[36,7297,7298,7301,7303,7305,7307,7309,7311,7314,7316],{"class":38,"line":530},[36,7299,7300],{"class":113},"    printf",[36,7302,117],{"class":78},[36,7304,7034],{"class":46},[36,7306,7037],{"class":217},[36,7308,7034],{"class":46},[36,7310,259],{"class":130},[36,7312,7313],{"class":78}," ac ",[36,7315,2364],{"class":42},[36,7317,7318],{"class":78}," MOD);\n",[36,7320,7321,7323,7325],{"class":38,"line":535},[36,7322,6969],{"class":42},[36,7324,1649],{"class":217},[36,7326,79],{"class":78},[36,7328,7329],{"class":38,"line":553},[36,7330,2086],{"class":78},[2831,7332,7333],{},"html pre.shiki code .sSCA1, html code.shiki .sSCA1{--shiki-default:#C678DD;--shiki-dark:#C678DD;--shiki-light:#D32F2F}html pre.shiki code .sZaK-, html code.shiki .sZaK-{--shiki-default:#98C379;--shiki-dark:#98C379;--shiki-light:#22863A}html pre.shiki code .slNdt, html code.shiki .slNdt{--shiki-default:#61AFEF;--shiki-dark:#61AFEF;--shiki-light:#6F42C1}html pre.shiki code .svpSI, html code.shiki .svpSI{--shiki-default:#E5C07B;--shiki-dark:#E5C07B;--shiki-light:#24292EFF}html pre.shiki code .s0bQm, html code.shiki .s0bQm{--shiki-default:#ABB2BF;--shiki-dark:#ABB2BF;--shiki-light:#24292EFF}html pre.shiki code .sWEYk, html code.shiki .sWEYk{--shiki-default:#D19A66;--shiki-dark:#D19A66;--shiki-light:#1976D2}html pre.shiki code .s9UT7, html code.shiki .s9UT7{--shiki-default:#E06C75;--shiki-dark:#E06C75;--shiki-light:#D32F2F}html pre.shiki code .s1pBA, html code.shiki .s1pBA{--shiki-default:#E5C07B;--shiki-dark:#E5C07B;--shiki-light:#6F42C1}html pre.shiki code .s2dl9, html code.shiki .s2dl9{--shiki-default:#ABB2BF;--shiki-dark:#ABB2BF;--shiki-light:#212121}html pre.shiki code .sIhaf, html code.shiki .sIhaf{--shiki-default:#E5C07B;--shiki-dark:#E5C07B;--shiki-light:#1976D2}html pre.shiki code .sQkFB, html code.shiki .sQkFB{--shiki-default:#E06C75;--shiki-default-font-style:italic;--shiki-dark:#E06C75;--shiki-dark-font-style:italic;--shiki-light:#24292EFF;--shiki-light-font-style:inherit}html pre.shiki code .sBPOt, html code.shiki .sBPOt{--shiki-default:#E06C75;--shiki-dark:#E06C75;--shiki-light:#24292EFF}html pre.shiki code .s2AVI, html code.shiki .s2AVI{--shiki-default:#56B6C2;--shiki-dark:#56B6C2;--shiki-light:#D32F2F}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}",{"title":31,"searchDepth":50,"depth":50,"links":7335},[],"ak47.jpg","2025-12-06","却让我看到了AK最后一眼",{},"/posts/dogdalgo",{"title":2862,"description":7338},"posts/dogdalgo","HmirBCbZTxHg2Hy4EpFz-Ec-qZBUJ41vxmEyCIQwN1Q",{"id":7345,"title":7346,"body":7347,"category":7856,"cover":7857,"coverAlt":2850,"date":7858,"description":7859,"extension":2853,"meta":7860,"navigation":61,"path":7861,"pinned":2856,"seo":7862,"stem":7863,"__hash__":7864},"posts/posts/raspberrypi.md","树莓派之慢速电影",{"type":8,"value":7348,"toc":7854},[7349,7352,7355,7365,7367,7371,7374,7389,7392,7400,7402,7405,7408,7411,7414,7416,7419,7422,7434,7441,7447,7450,7459,7462,7464,7467,7470,7473,7482,7505,7508,7521,7524,7526,7529,7536,7539,7542,7575,7578,7585,7590,7606,7609,7789,7792,7797,7835,7838,7840,7851],[11,7350,7351],{},"树莓派这个东西，初见是初中看我的世界维基，作为一个并行的版本被单列出来。没想到真正上手实践是用在这里，也是记录一下我第一次上手嵌入式的过程。",[11,7353,7354],{},"这是一个有多次完整实践、文档详细而全面的项目：以极慢速，即以分钟级的时间播放一帧，在墨水屏上播放整个电影。既是赠予异地心上人，泰坦尼克号是个好主题，希望这段感情不为占有，而是可以让彼此依靠成长。",[11,7356,7357,7358,7364],{},"本文主要参考",[3933,7359,7363],{"href":7360,"rel":7361},"https://shumeipai.nxez.com/2020/10/13/how-to-build-a-very-slow-movie-player-in-2020.html",[7362],"nofollow","这篇文章","，文章内容有些过时，本文尝试给出一些更优的实践并指出常见的坑。",[15,7366],{},[7368,7369,7370],"h1",{"id":7370},"硬件需求",[11,7372,7373],{},"原文用了120英镑，本文在尽量使用高配的情况下也只用了600多人民币，这就是工业克苏鲁带给我的自信。",[7375,7376,7377,7380,7383,7386],"ol",{},[4764,7378,7379],{},"树莓派4B(4GB) + 5V3A适配器 （2GB内存及以上即可，实际使用较低端的单片机都可以）",[4764,7381,7382],{},"Waveshare树莓派4 7.5寸墨水屏模块 + HAT驱动板",[4764,7384,7385],{},"Micro SD 64GB（实际用不了那么大，墨水屏分辨率也没那么大）",[4764,7387,7388],{},"7寸相框（照片12.7*17.8cm）+ 卡纸（用于遮盖墨水屏边缘）+ 棉线胶布",[11,7390,7391],{},"以下为非消耗品，或需要准备的环境：",[7375,7393,7394,7397],{"start":82},[4764,7395,7396],{},"无线热点或键鼠显示器（用于连接树莓派）",[4764,7398,7399],{},"Micro SD读卡器",[15,7401],{},[7368,7403,7404],{"id":7404},"外设准备",[11,7406,7407],{},"其实就是把墨水屏通过驱动板连接到树莓派上，直接参考链接中文章的图片即可。当然自己连也不会连出第二个样子，这种嵌入式的防呆设计都不错。",[11,7409,7410],{},"有一点可能需要注意的是驱动板链接柔性PCB导线的时候需要拨动一下黑色塑料，本人在这里浪费了几分钟。",[11,7412,7413],{},"SD卡的位置在树莓派的背面，充电器就连接在仅有的USB-C上即可。",[15,7415],{},[7368,7417,7418],{"id":7418},"系统准备",[11,7420,7421],{},"这个东西就相当于树莓派的外存/硬盘，至少得往里面写一个系统（黑话叫做“烧入”）才能开机。",[11,7423,7424,7425,7428,7433],{},"注意，如果想要使用最新系统，此处",[3683,7426,7427],{},"强烈推荐",[3933,7429,7432],{"href":7430,"rel":7431},"https://www.raspberrypi.com/software/",[7362],"Imager","，而非文章中的Etcher，因为在某个较新的版本的安全策略升级，导致烧入后配置Wi-Fi非常繁琐。使用Etcher可以使用2021年及以前的系统，就可以按文中的方式配置网络。",[11,7435,7436,7437,7440],{},"Imager十分好用，在电脑上插入SD卡，启动Imager即可烧入。本文选择了最新的64位桌面版（实际可以不用桌面）。如果使用无线方式配置树莓派（没有键鼠显示器），烧入前请",[3683,7438,7439],{},"务必","修改无线名和密码以连接到与PC同一网络。",[11,7442,7443,7444,7446],{},"另外请",[3683,7445,7439],{},"记住烧入的用户名和密码（新系统不再是默认的pi和raspberrypi）。",[11,7448,7449],{},"烧入完成后，如果想用无线方式链接树莓派，需要在SD卡根目录下新建一个名为ssh的空文件。否则尝试使用ssh连接时会显示阻止连接。",[11,7451,7452,7453,7458],{},"如果不小心烧错了，需要用",[3933,7454,7457],{"href":7455,"rel":7456},"https://www.sdcard.org/downloads/formatter/",[7362],"这个","格式化一下（快速格式化即可）再重新烧入新的系统。",[11,7460,7461],{},"一切就绪后，将SD卡插入树莓派，连接电源，树莓派会自动开机。",[15,7463],{},[7368,7465,7466],{"id":7466},"软件准备",[11,7468,7469],{},"开机大约半分钟左右，树莓派会连接到配置好的Wi-Fi上，这时就可以用SSH连接树莓派了。可以使用文中推荐的PuTTY连接，实际上用命令提示符也能连。",[11,7471,7472],{},"连接时需要进入路由器后台找到树莓派的IP地址，名字很好辨认，一般就是raspberrypi，会给分配一个192.168.x.x这样的地址。然后使用同一网络下的设备就可以通过SSH，输入用户名和密码连接了。",[11,7474,7475,7476,7481],{},"时隔多年早已有好事者把这个项目整理为傻瓜级别，本文直接用之。具体为这个",[3933,7477,7480],{"href":7478,"rel":7479},"https://github.com/TomWhitwell/SlowMovie",[7362],"Github项目","，有一条傻瓜一样的安装指令：",[26,7483,7487],{"className":7484,"code":7485,"language":7486,"meta":31,"style":31},"language-bash shiki shiki-themes one-dark-pro one-dark-pro min-light","bash \u003C(curl https://raw.githubusercontent.com/TomWhitwell/SlowMovie/main/Install/install.sh)\n","bash",[33,7488,7489],{"__ignoreMap":31},[36,7490,7491,7493,7496,7499,7503],{"class":38,"line":39},[36,7492,7486],{"class":113},[36,7494,7495],{"class":46}," \u003C(",[36,7497,7498],{"class":113},"curl",[36,7500,7502],{"class":7501},"sVtDz"," https://raw.githubusercontent.com/TomWhitwell/SlowMovie/main/Install/install.sh",[36,7504,1294],{"class":46},[11,7506,7507],{},"直接在用户目录下运行这个指令，会自动安装该项目及其所有依赖。注意如果是墙内可能会超时几次，但一般重试几次都可以成功安装。运行结束后，用户目录下会多一个SlowMovie目录，进去后运行：",[26,7509,7511],{"className":7484,"code":7510,"language":7486,"meta":31,"style":31},"python slowmovie.py\n",[33,7512,7513],{"__ignoreMap":31},[36,7514,7515,7518],{"class":38,"line":39},[36,7516,7517],{"class":113},"python",[36,7519,7520],{"class":7501}," slowmovie.py\n",[11,7522,7523],{},"就可以看见墨水屏闪烁几下，出现一个人开车的画面，过一段时间会切换。实际上这是播放了SlowMovie/Videos中的test.mp4的内容，使用默认参数。至此所有需要的软件已经安装并跑通。",[15,7525],{},[7368,7527,7528],{"id":7528},"自定义播放",[11,7530,7531,7532,7535],{},"既然是送礼，不能指望对方打开SSH连进来再一通操作，本文最终实现的是",[3683,7533,7534],{},"插上电自动继续播放，断电保留在断电时的画面","，不需要联网。",[11,7537,7538],{},"首先准备一个有意义的视频片段，放到SlowMovie/Videos中，我的泰坦尼克号是.mkv格式的也可以直接播放。传输文件可以用FileZilla通过SFTP，当然用XFTP软件等等都可以。",[11,7540,7541],{},"然后确定一下自己想要的参数，指令运行时该项目会自动计算播放完所需时间。同时该项目本身就支持直接续播，不需要额外配置。例如以下指令：",[26,7543,7545],{"className":7484,"code":7544,"language":7486,"meta":31,"style":31},"python slowmovie.py -f Videos/Titanic.mkv -d 150 -i 1 -l\n",[33,7546,7547],{"__ignoreMap":31},[36,7548,7549,7551,7554,7558,7561,7564,7567,7570,7572],{"class":38,"line":39},[36,7550,7517],{"class":113},[36,7552,7553],{"class":7501}," slowmovie.py",[36,7555,7557],{"class":7556},"stC8A"," -f",[36,7559,7560],{"class":7501}," Videos/Titanic.mkv",[36,7562,7563],{"class":7556}," -d",[36,7565,7566],{"class":217}," 150",[36,7568,7569],{"class":7556}," -i",[36,7571,2272],{"class":217},[36,7573,7574],{"class":7556}," -l\n",[11,7576,7577],{},"代表播放泰坦尼克号，每150秒播放1帧，播完后从头播放。更具体的选项可以在Github原仓库页面查看。",[11,7579,7580,7581,7584],{},"需要注意的是，如果想实现连电播放，需要配置systemd",[3683,7582,7583],{},"而非/etc/profile中的内容","，后者起的作用是用SSH登录后执行指令。具体操作如下：",[7375,7586,7587],{},[4764,7588,7589],{},"建立服务文件",[26,7591,7593],{"className":7484,"code":7592,"language":7486,"meta":31,"style":31},"sudo nano /etc/systemd/system/slowmovie.service\n",[33,7594,7595],{"__ignoreMap":31},[36,7596,7597,7600,7603],{"class":38,"line":39},[36,7598,7599],{"class":113},"sudo",[36,7601,7602],{"class":7501}," nano",[36,7604,7605],{"class":7501}," /etc/systemd/system/slowmovie.service\n",[11,7607,7608],{},"在里面写入以下内容（注意视频路径和参数修改为自己的）：",[26,7610,7614],{"className":7611,"code":7612,"language":7613,"meta":31,"style":31},"language-ini shiki shiki-themes one-dark-pro one-dark-pro min-light","[Unit]\nDescription=SlowMovie Startup Script\nAfter=network-online.target\nWants=network-online.target\nStartLimitIntervalSec=0\n\n[Service]\nType=simple\nUser=pi\nWorkingDirectory=/home/pi/SlowMovie\nEnvironment=PYTHONUNBUFFERED=1\nExecStart=/home/pi/SlowMovie/.SlowMovie/bin/python /home/pi/SlowMovie/slowmovie.py \\\n          -f /home/pi/SlowMovie/Videos/Titanic.mkv -d 60 -i 1 -l\nRestart=on-failure\nRestartSec=5\nStandardOutput=journal\nStandardError=journal\n\n[Install]\nWantedBy=multi-user.target\n","ini",[33,7615,7616,7622,7633,7643,7652,7662,7666,7671,7681,7691,7701,7716,7726,7731,7741,7751,7761,7770,7774,7779],{"__ignoreMap":31},[36,7617,7618],{"class":38,"line":39},[36,7619,7621],{"class":7620},"skjSQ","[Unit]\n",[36,7623,7624,7627,7629],{"class":38,"line":50},[36,7625,7626],{"class":42},"Description",[36,7628,173],{"class":855},[36,7630,7632],{"class":7631},"sbbSH","SlowMovie Startup Script\n",[36,7634,7635,7638,7640],{"class":38,"line":58},[36,7636,7637],{"class":42},"After",[36,7639,173],{"class":855},[36,7641,7642],{"class":7631},"network-online.target\n",[36,7644,7645,7648,7650],{"class":38,"line":65},[36,7646,7647],{"class":42},"Wants",[36,7649,173],{"class":855},[36,7651,7642],{"class":7631},[36,7653,7654,7657,7659],{"class":38,"line":82},[36,7655,7656],{"class":42},"StartLimitIntervalSec",[36,7658,173],{"class":855},[36,7660,7661],{"class":7631},"0\n",[36,7663,7664],{"class":38,"line":87},[36,7665,62],{"emptyLinePlaceholder":61},[36,7667,7668],{"class":38,"line":100},[36,7669,7670],{"class":7620},"[Service]\n",[36,7672,7673,7676,7678],{"class":38,"line":110},[36,7674,7675],{"class":42},"Type",[36,7677,173],{"class":855},[36,7679,7680],{"class":7631},"simple\n",[36,7682,7683,7686,7688],{"class":38,"line":140},[36,7684,7685],{"class":42},"User",[36,7687,173],{"class":855},[36,7689,7690],{"class":7631},"pi\n",[36,7692,7693,7696,7698],{"class":38,"line":145},[36,7694,7695],{"class":42},"WorkingDirectory",[36,7697,173],{"class":855},[36,7699,7700],{"class":7631},"/home/pi/SlowMovie\n",[36,7702,7703,7706,7708,7711,7713],{"class":38,"line":164},[36,7704,7705],{"class":42},"Environment",[36,7707,173],{"class":855},[36,7709,7710],{"class":42},"PYTHONUNBUFFERED",[36,7712,173],{"class":855},[36,7714,7715],{"class":7631},"1\n",[36,7717,7718,7721,7723],{"class":38,"line":189},[36,7719,7720],{"class":42},"ExecStart",[36,7722,173],{"class":855},[36,7724,7725],{"class":7631},"/home/pi/SlowMovie/.SlowMovie/bin/python /home/pi/SlowMovie/slowmovie.py \\\n",[36,7727,7728],{"class":38,"line":223},[36,7729,7730],{"class":7631},"          -f /home/pi/SlowMovie/Videos/Titanic.mkv -d 60 -i 1 -l\n",[36,7732,7733,7736,7738],{"class":38,"line":228},[36,7734,7735],{"class":42},"Restart",[36,7737,173],{"class":855},[36,7739,7740],{"class":7631},"on-failure\n",[36,7742,7743,7746,7748],{"class":38,"line":235},[36,7744,7745],{"class":42},"RestartSec",[36,7747,173],{"class":855},[36,7749,7750],{"class":7631},"5\n",[36,7752,7753,7756,7758],{"class":38,"line":280},[36,7754,7755],{"class":42},"StandardOutput",[36,7757,173],{"class":855},[36,7759,7760],{"class":7631},"journal\n",[36,7762,7763,7766,7768],{"class":38,"line":298},[36,7764,7765],{"class":42},"StandardError",[36,7767,173],{"class":855},[36,7769,7760],{"class":7631},[36,7771,7772],{"class":38,"line":304},[36,7773,62],{"emptyLinePlaceholder":61},[36,7775,7776],{"class":38,"line":309},[36,7777,7778],{"class":7620},"[Install]\n",[36,7780,7781,7784,7786],{"class":38,"line":334},[36,7782,7783],{"class":42},"WantedBy",[36,7785,173],{"class":855},[36,7787,7788],{"class":7631},"multi-user.target\n",[11,7790,7791],{},"然后按Ctrl+O后回车保存，Ctrl+X退出。虽然不是Vim这种乌干达恶意软件，但还是值得说一下。",[7375,7793,7794],{"start":50},[4764,7795,7796],{},"开启服务",[26,7798,7800],{"className":7484,"code":7799,"language":7486,"meta":31,"style":31},"sudo systemctl daemon-reload\nsudo systemctl enable slowmovie.service\nsudo systemctl start slowmovie.service\n",[33,7801,7802,7812,7824],{"__ignoreMap":31},[36,7803,7804,7806,7809],{"class":38,"line":39},[36,7805,7599],{"class":113},[36,7807,7808],{"class":7501}," systemctl",[36,7810,7811],{"class":7501}," daemon-reload\n",[36,7813,7814,7816,7818,7821],{"class":38,"line":50},[36,7815,7599],{"class":113},[36,7817,7808],{"class":7501},[36,7819,7820],{"class":7501}," enable",[36,7822,7823],{"class":7501}," slowmovie.service\n",[36,7825,7826,7828,7830,7833],{"class":38,"line":58},[36,7827,7599],{"class":113},[36,7829,7808],{"class":7501},[36,7831,7832],{"class":7501}," start",[36,7834,7823],{"class":7501},[11,7836,7837],{},"这样应该就可以了，断电重插一次，看看是否符合预期。",[15,7839],{},[2874,7841,7842,7845,7848],{},[11,7843,7844],{},"Once more, you open the door",[11,7846,7847],{},"And you're here in my heart",[11,7849,7850],{},"And my heart will go on and on",[2831,7852,7853],{},"html pre.shiki code .slNdt, html code.shiki .slNdt{--shiki-default:#61AFEF;--shiki-dark:#61AFEF;--shiki-light:#6F42C1}html pre.shiki code .sZaK-, html code.shiki .sZaK-{--shiki-default:#98C379;--shiki-dark:#98C379;--shiki-light:#22863A}html pre.shiki code .sVtDz, html code.shiki .sVtDz{--shiki-default:#98C379;--shiki-dark:#98C379;--shiki-light:#2B5581}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html pre.shiki code .stC8A, html code.shiki .stC8A{--shiki-default:#D19A66;--shiki-dark:#D19A66;--shiki-light:#2B5581}html pre.shiki code .sWEYk, html code.shiki .sWEYk{--shiki-default:#D19A66;--shiki-dark:#D19A66;--shiki-light:#1976D2}html pre.shiki code .skjSQ, html code.shiki .skjSQ{--shiki-default:#61AFEF;--shiki-dark:#61AFEF;--shiki-light:#24292EFF}html pre.shiki code .sSCA1, html code.shiki .sSCA1{--shiki-default:#C678DD;--shiki-dark:#C678DD;--shiki-light:#D32F2F}html pre.shiki code .s3Kl_, html code.shiki .s3Kl_{--shiki-default:#ABB2BF;--shiki-dark:#ABB2BF;--shiki-light:#D32F2F}html pre.shiki code .sbbSH, html code.shiki .sbbSH{--shiki-default:#98C379;--shiki-dark:#98C379;--shiki-light:#24292EFF}",{"title":31,"searchDepth":50,"depth":50,"links":7855},[],"devlog","Titanic.jpg","2025-11-13","我心永恒",{},"/posts/raspberrypi",{"title":7346,"description":7859},"posts/raspberrypi","4XZMHRzy0FeZPdUg6FUoXudcT5URK3VhZji2969izzo",{"id":7866,"title":7867,"body":7868,"category":7992,"cover":7993,"coverAlt":2850,"date":7994,"description":7995,"extension":2853,"meta":7996,"navigation":61,"path":7997,"pinned":2856,"seo":7998,"stem":7999,"__hash__":8000},"posts/posts/city-tokyo.md","城市印象之东京",{"type":8,"value":7869,"toc":7990},[7870,7873,7875,7878,7881,7884,7893,7896,7913,7916,7918,7921,7924,7932,7935,7938,7941,7943,7946,7949,7957,7960,7962,7965,7968,7976,7979,7982,7985,7987],[11,7871,7872],{},"这是我最熟悉又陌生的城市，也是我没有长居过的城市里最熟悉的。",[15,7874],{},[11,7876,7877],{},"第一次来是中考结束，住在江东，全程和友人坐旅游团的大巴。此行对东京作为城市没有什么印象，旅游团也是初中南边几十米就可以报名的小旅行社的项目，导游口中的台词也是如今俗不可耐的内容——日本尊重科学把科学家印到钞票上（实际上是为了卖挂野口英世头的商品，野口英世要被气活了）、日本人民主、土地私有、民生好、人口素质高...每个中国人都会在从小到大的某个场合听到这些东西，也难怪如今互联网仍然充斥着这类病毒一般的信息，由心智停留在初中阶段的人发布。",[11,7879,7880],{},"当然，并不是说旅游团就有什么问题，作为未成年人我们还是给了一晚的自由。以给女同学带印泥为由寻找无印良品店，但事实证明手作这类文化并不在旅游团的路线上，我和友人半夜从成田驿向西北坐一站到下总松崎，一开始以为是地铁，没想到开了将近20分钟，差点以为回不来，把我们吓得不行。偶遇了一位传说中蜗居车内的中年宅男（英语还不如我当时好），才帮我们解决了困境。最后无印良品也没买到，回到成田就赶紧回酒店了。好在东亚还是安全的地方，难以想象如果中考旅游选择欧洲作为目的地，我现在不知道能否岁月静好敲下这行文字。",[11,7882,7883],{},"实际上那里属于千叶，但实际上千叶人想去东京比临淄人想来张店容易得多。东京的乡村是安静的，有犬吠、有风铃，有贴着姓氏牌的小别墅，还有无人值守的乘车证明打印机。",[4573,7885,4576,7887,4576,7890],{"style":7886},"max-width: 70%;",[4578,7888],{"src":7889},"/post-photos/tokyo1.jpg",[4582,7891,7892],{},"我孙子方面电车",[11,7894,7895],{},"那一次还有不愉快的点在于浅草寺求签：",[2874,7897,7898,7901,7904,7907,7910],{},[11,7899,7900],{},"意速无船渡",[11,7902,7903],{},"波深必误身",[11,7905,7906],{},"切须回旧路",[11,7908,7909],{},"方可免灾迍",[11,7911,7912],{},"——第二十八凶",[11,7914,7915],{},"很难说这个凶签是否潜意识中左右了我几个月后的感情变化，虽然在当时来看，这个回旧路也未必是很值得采纳的意见。友人抽出了吉，那张纸已经陪他走过八年了。",[15,7917],{},[11,7919,7920],{},"第二次是和四人帮来的，住在池袋，大学毕业后该有的放纵。这一次我们坐了成田的Skyliner，坐了山手线，坐了都营地下铁和东京Metro，以及从新宿出发到富士山下的大巴。",[11,7922,7923],{},"我们给东京留足了时间，于是在四五点就能听到山手线轰鸣的、房价想必特别低的民宿睡过了好几个上午。我们看了伊藤润二展，吃了路上的炸猪排，到访了野兽邸，也打卡了孤独摇滚。这次体验了东京亚文化的一面，秋叶原是初中的我心中的圣地，我们这次逛了个爽爽爽。这一次我在浅草寺抽到了大吉，也算弥补了当年的遗憾。我也在这里许下了雅思通过的愿望。",[4573,7925,4576,7926,4576,7929],{"style":7886},[4578,7927],{"src":7928},"/post-photos/tokyo2.jpg",[4582,7930,7931],{},"四人帮与木柜子乐队",[11,7933,7934],{},"我们四个的相识与东京也密不可分，但这就有点扯远了，可以从计算机系二次元文化说到省选营合唱Only my railgun。山手线上的风景是美好的，这条线在我心中目前还是大于北京十号线、上海四号线以及伦敦Circle Line。",[11,7936,7937],{},"我甚至在这里考了一次雅思，高田马场是很多日留的新手村，我也算体验了一下。",[11,7939,7940],{},"此行了解了东京的城市规划、都心和三个副都心。也让我看到了日本人在建设自己的国家上是团结的，虽然这个团结导致他们挨了两个原子弹。不得不说这是一个很有意思的邻居。也难怪实习同组的人一天到晚日本日本anime anime。以及了解了Tabelog等等好玩的东西。可能这才是我旅行舒服的方式：从自己呆腻的地方去别人呆腻的地方体验一下，过一过当地人的周末。",[15,7942],{},[11,7944,7945],{},"第三次是和一位青梅和她的好友来的，我们住在日暮里，作为同为英水硕开学前的狂欢。虽然此行我在大阪不幸爱上此人，但东京还是很愉快。我们顶着台风珊珊将至的阴影游玩，最终选择了华人包车服务前往关西。",[11,7947,7948],{},"日暮里的民宿是曲径通幽的，和鲁迅笔下有一些相似。从日暮里站到我们的住所要跨过很多铁道口，我经常在这里被嫌弃走路很慢。不只是走路，我在这里领取了各种恋爱体验卡：拍照挨骂、导航失误、帮忙背包等等。也许是她穿着和服的身影为几天后大阪夏之阵的败北埋下了种子，我成为了新时代的丰臣秀吉。不过这位游伴情绪很稳定，我在餐厅和交通等方面的决策基本是完全的一言堂。",[4573,7950,4576,7951,4576,7954],{"style":4575},[4578,7952],{"src":7953},"/post-photos/tokyo3.jpg",[4582,7955,7956],{},"青梅摄影作品",[11,7958,7959],{},"博物馆、神社、寺庙，以及网红的涩谷观景台，在哪里都能遇到同胞，感觉彻底体验了预制旅游，一切看起来都是网上搜到的最优解。可能这是大部分人的旅行方式，一切安排得按部就班，没有意外，也没有惊喜。她说来日本玩适合打扮成亚比，带了好几套便宜的衣服，非常出片。她也在雅思口语练习中早就说过自己只喜欢去地标打卡，只要没听过名字，那就不值得去。",[15,7961],{},[11,7963,7964],{},"第四次和当时的女友住在新宿，她是一个很有生活的人，我托福留下了一些好看的影象。我也在这趟旅途购置了山本耀司一整套的行头，有些暗黑风，但和她非常相配。她的音游旧友带我们探索了东京属于本地人的角落，我也算体验了富有留学生逛街的日子。",[11,7966,7967],{},"此行也是我囊中最富有的一次，因为这是留学课程与实习之间短暂的假期，花着父母支持的人民币转成的英镑，随后在汇丰英国的国际账户换的日元，可以说为未来的日本游打了一个样。我也期待在有了收入以后，可以住在有24小时前台的酒店，归来就可以洗去一身烦恼、换上干净的衣服，而非新宿繁华角落中看似五脏俱全的小空间，为行李的摆放而吵闹。",[4573,7969,4576,7970,4576,7973],{"style":4575},[4578,7971],{"src":7972},"/post-photos/tokyo4.jpg",[4582,7974,7975],{},"好看的影像",[11,7977,7978],{},"她对咖啡豆颇有研究，我们去了东京特色星巴克。这个全球屈指可数的特色店在东京坐落于郊区，不像在上海选在南京路的入口，目黑川是东京的宁静，很像小学写生时前往的江南小镇，有小桥流水和苔痕，也有笑眯眯的老太太，不过这里的拍立得相纸没有人抢购。咖啡有些酸涩，鸡尾酒是经典的甜。几个甜点我们也一起分享了，是一顿我们都很享受的早午餐。",[11,7980,7981],{},"我们这次也解锁了夜场迪士尼，这里没有淡季，当年的火山矿车已经变成了宝宝巴士，没有触发幽灵古堡的阴影。",[11,7983,7984],{},"很可惜，旅途的末尾，我们的矛盾很多，羽田空港第三航站楼的依依惜别成了我们分手前最后一次相见。",[15,7986],{},[11,7988,7989],{},"这里霓虹闪烁、龙角散的招牌似乎要永远灿烂，这里的万家灯火终究与我无关，但作为过客，我喜欢这种感觉。从一开始就出生在东京的人，肯定也有自己的烦恼。不论航班几点落地，山手线上总有穿着西装的日本人在通勤。而我就是那个在山手线上坐过很多圈的外国人，不知道在看什么，不知道在体验什么。",{"title":31,"searchDepth":50,"depth":50,"links":7991},[],"life","tokyo_tower.jpg","2025-10-07","次は、東京です。",{},"/posts/city-tokyo",{"title":7867,"description":7995},"posts/city-tokyo","bO6LI3vIe_EdHDyqidI8f31PdSS9GNP7GH63Zh0nDl8",{"id":8002,"title":8003,"body":8004,"category":7992,"cover":8046,"coverAlt":2850,"date":8047,"description":8048,"extension":2853,"meta":8049,"navigation":61,"path":8050,"pinned":2856,"seo":8051,"stem":8052,"__hash__":8053},"posts/posts/chunfeng.md","春风得意马蹄疾",{"type":8,"value":8005,"toc":8044},[8006,8009,8012,8015,8018,8021,8024,8027,8030,8033,8036,8039,8041],[11,8007,8008],{},"怀着忐忑的心情，得知被webex signalling组录取了。",[11,8010,8011],{},"算是我计算机生涯的新起点？",[11,8013,8014],{},"他们一上来说Thank you简直吓死我了，难道不是应该说Congrats吗？",[11,8016,8017],{},"或许这意味着未来十年以上我会在伦敦度过，这下确实是命运的齿轮开始转动了。",[11,8019,8020],{},"这后面也有很多小齿轮，已经数不清了。我需要分配到思科的这个实习项目，要先被UCL录取，要先决定出国，要先看到郑州疫情管控的新闻（还真是），要先决定来英国（还要决定可以不回国），要在申请季谈对象（并且在申请完了分手...）。",[11,8022,8023],{},"走到UCL这一步可能是要被山大录取（但并非必要条件其实），有一个还可以的GPA（需要有对象监督学习来着），需要在高考前摸鱼（...）。",[11,8025,8026],{},"高考以前我能决定没有去新加坡，因为级部主任太能忽悠了希望大家贡献业绩哈哈，比较后悔的决定之一。",[11,8028,8029],{},"小镇做题家算是超级好结局，我现在还觉得精力超级充沛...",[11,8031,8032],{},"我是一个幸运的人，虽然是水硕（而且拿了Merit就跑路）但还是在这段经历里学到了很多，甚至可以说学费大部分花到这个项目上了。我获得了工业经验，队友也很热心指导我，整个项目高效推进。虽然我没有什么领导，基本起到一个按时交付的作用，但我们组已经有两个领导了，我掺和也没必要，高效完成任务才是最好的。",[11,8034,8035],{},"我们和隔壁组开发模式其实很不同，我们几乎完全是自治模式，他们的PR和审核都比较规范。不过感觉我们成果要好一些呢，可能是自己家孩子看着喜欢，也可能是心底里觉得写底层的就是比ts这种厉害？当然做的是完全不一样的东西，我们也只是帮助做了测评，体感就是运行好慢，他们把所有运算都放CPU了？服务器可能没有GPU资源给他们用。",[11,8037,8038],{},"也算是上岸了，离收到正式offer还有一段时间，回去陪陪家人，看看朋友们。都是小时候觉得很老套无聊的事呢。",[15,8040],{},[11,8042,8043],{},"更新：思科把我的offer鸽了，莫名其妙，不过也是帮我做选择了，在国内生活要好得多。",{"title":31,"searchDepth":50,"depth":50,"links":8045},[],"cisco.jpg","2025-08-27","一日看尽长安花",{},"/posts/chunfeng",{"title":8003,"description":8048},"posts/chunfeng","dl5pVwASA8IqrOqlEKkwhjO5Pe30r30-IYJf1p8xEfA",{"id":8055,"title":8056,"body":8057,"category":2848,"cover":10325,"coverAlt":2850,"date":8047,"description":10326,"extension":2853,"meta":10327,"navigation":61,"path":10328,"pinned":2856,"seo":10329,"stem":10330,"__hash__":10331},"posts/posts/uk-algorithm.md","英国找工之算法",{"type":8,"value":8058,"toc":10323},[8059,8062,8065,8068,8071,8073,8076,8472,9072,9214,9216,9422,9424,9427,9438,10038,10120,10122,10125,10188,10313,10315,10318,10320],[11,8060,8061],{},"英国找工告一段落，本来想写个面试过程中的算法题合集，但这的算法题实在是太简单了。",[11,8063,8064],{},"刚开始找工的时候觉得算法怎么也是必考项，还是练习一下吧，于是刷了几轮Codeforces，结果还是一样的菜，和当年铜牌的我还是一个水平（甚至被AI惯坏了有点退步）。",[11,8066,8067],{},"我的同事给我推荐了LeetCode，是个好网站，八股题大合集。不过还是应了那句话，再菜的竞赛生刷力扣也会感觉很水。的确，这里easy、medium和很大一部分hard对我来说读完题就有思路并且写出来全A，而且这是允许多次提交的，漏掉细节也不是什么大问题，毕竟实际工作中也确实这样。",[11,8069,8070],{},"装逼结束，回忆一下我的题目吧。",[15,8072],{},[11,8074,8075],{},"首先是亚马逊的OA，第一道大水题忘了，第二道我感觉给我拉了坨大的，DP+线段树优化？",[2874,8077,8078,8110,8170,8469],{},[11,8079,8080,8081,8109],{},"输入一个整数数组",[36,8082,8084,8097],{"className":8083},[2882],[36,8085,8087],{"className":8086},[2886],[2888,8088,8089],{"xmlns":2890},[2892,8090,8091,8095],{},[2895,8092,8093],{},[2898,8094,3933],{},[2902,8096,3933],{"encoding":2904},[36,8098,8100],{"className":8099,"ariaHidden":1960},[2908],[36,8101,8103,8106],{"className":8102},[2912],[36,8104],{"className":8105,"style":2950},[2916],[36,8107,3933],{"className":8108},[2921,2922],"（长度1e5），将整个数组划分成若干个连续子数组，每个子数组必须满足：",[11,8111,8112,8113,8169],{},"1.是原数组中的一段连续子区间 ",[36,8114,8116,8140],{"className":8115},[2882],[36,8117,8119],{"className":8118},[2886],[2888,8120,8121],{"xmlns":2890},[2892,8122,8123,8137],{},[2895,8124,8125,8127,8130,8132,8135],{},[2970,8126,3936],{"stretchy":3214},[2898,8128,8129],{},"l",[2970,8131,259],{"separator":1960},[2898,8133,8134],{},"r",[2970,8136,3941],{"stretchy":3214},[2902,8138,8139],{"encoding":2904},"[l, r]",[36,8141,8143],{"className":8142,"ariaHidden":1960},[2908],[36,8144,8146,8149,8152,8156,8160,8163,8166],{"className":8145},[2912],[36,8147],{"className":8148,"style":3238},[2916],[36,8150,3936],{"className":8151},[3242],[36,8153,8129],{"className":8154,"style":8155},[2921,2922],"margin-right:0.01968em;",[36,8157,259],{"className":8158},[8159],"mpunct",[36,8161],{"className":8162,"style":3755},[2994],[36,8164,8134],{"className":8165,"style":3739},[2921,2922],[36,8167,3941],{"className":8168},[3267],"；",[11,8171,8172,8173,8169],{},"2.满足：",[36,8174,8176,8238],{"className":8175},[2882],[36,8177,8179],{"className":8178},[2886],[2888,8180,8181],{"xmlns":2890},[2892,8182,8183,8235],{},[2895,8184,8185,8191,8193,8196,8198,8200,8206,8208,8220,8222,8225,8227,8233],{},[4835,8186,8187,8189],{},[2898,8188,3933],{},[2898,8190,8134],{},[2970,8192,604],{},[2898,8194,8195],{},"max",[2970,8197,3709],{},[2970,8199,117],{"stretchy":3214},[4835,8201,8202,8204],{},[2898,8203,3933],{},[2898,8205,8129],{},[2970,8207,259],{"separator":1960},[4835,8209,8210,8212],{},[2898,8211,3933],{},[2895,8213,8214,8216,8218],{},[2898,8215,8129],{},[2970,8217,2972],{},[3220,8219,218],{},[2970,8221,259],{"separator":1960},[2970,8223,8224],{},"…",[2970,8226,259],{"separator":1960},[4835,8228,8229,8231],{},[2898,8230,3933],{},[2898,8232,8134],{},[2970,8234,453],{"stretchy":3214},[2902,8236,8237],{"encoding":2904},"a_r \u003C \\max(a_l, a_{l+1}, \\dots, a_r)",[36,8239,8241,8298],{"className":8240,"ariaHidden":1960},[2908],[36,8242,8244,8248,8289,8292,8295],{"className":8243},[2912],[36,8245],{"className":8246,"style":8247},[2916],"height:0.6891em;vertical-align:-0.15em;",[36,8249,8251,8254],{"className":8250},[2921],[36,8252,3933],{"className":8253},[2921,2922],[36,8255,8257],{"className":8256},[3333],[36,8258,8260,8281],{"className":8259},[3337,4886],[36,8261,8263,8278],{"className":8262},[3341],[36,8264,8267],{"className":8265,"style":8266},[3345],"height:0.1514em;",[36,8268,8269,8272],{"style":4896},[36,8270],{"className":8271,"style":3354},[3353],[36,8273,8275],{"className":8274},[3358,3359,3360,3361],[36,8276,8134],{"className":8277,"style":3739},[2921,2922,3361],[36,8279,4910],{"className":8280},[4909],[36,8282,8284],{"className":8283},[3341],[36,8285,8287],{"className":8286,"style":4917},[3345],[36,8288],{},[36,8290],{"className":8291,"style":3565},[2994],[36,8293,604],{"className":8294},[3569],[36,8296],{"className":8297,"style":3565},[2994],[36,8299,8301,8304,8307,8310,8351,8354,8357,8407,8410,8413,8417,8420,8423,8426,8466],{"className":8300},[2912],[36,8302],{"className":8303,"style":3238},[2916],[36,8305,8195],{"className":8306},[3746],[36,8308,117],{"className":8309},[3242],[36,8311,8313,8316],{"className":8312},[2921],[36,8314,3933],{"className":8315},[2921,2922],[36,8317,8319],{"className":8318},[3333],[36,8320,8322,8343],{"className":8321},[3337,4886],[36,8323,8325,8340],{"className":8324},[3341],[36,8326,8329],{"className":8327,"style":8328},[3345],"height:0.3361em;",[36,8330,8331,8334],{"style":4896},[36,8332],{"className":8333,"style":3354},[3353],[36,8335,8337],{"className":8336},[3358,3359,3360,3361],[36,8338,8129],{"className":8339,"style":8155},[2921,2922,3361],[36,8341,4910],{"className":8342},[4909],[36,8344,8346],{"className":8345},[3341],[36,8347,8349],{"className":8348,"style":4917},[3345],[36,8350],{},[36,8352,259],{"className":8353},[8159],[36,8355],{"className":8356,"style":3755},[2994],[36,8358,8360,8363],{"className":8359},[2921],[36,8361,3933],{"className":8362},[2921,2922],[36,8364,8366],{"className":8365},[3333],[36,8367,8369,8398],{"className":8368},[3337,4886],[36,8370,8372,8395],{"className":8371},[3341],[36,8373,8375],{"className":8374,"style":8328},[3345],[36,8376,8377,8380],{"style":4896},[36,8378],{"className":8379,"style":3354},[3353],[36,8381,8383],{"className":8382},[3358,3359,3360,3361],[36,8384,8386,8389,8392],{"className":8385},[2921,3361],[36,8387,8129],{"className":8388,"style":8155},[2921,2922,3361],[36,8390,2972],{"className":8391},[2999,3361],[36,8393,218],{"className":8394},[2921,3361],[36,8396,4910],{"className":8397},[4909],[36,8399,8401],{"className":8400},[3341],[36,8402,8405],{"className":8403,"style":8404},[3345],"height:0.2083em;",[36,8406],{},[36,8408,259],{"className":8409},[8159],[36,8411],{"className":8412,"style":3755},[2994],[36,8414,8224],{"className":8415},[8416],"minner",[36,8418],{"className":8419,"style":3755},[2994],[36,8421,259],{"className":8422},[8159],[36,8424],{"className":8425,"style":3755},[2994],[36,8427,8429,8432],{"className":8428},[2921],[36,8430,3933],{"className":8431},[2921,2922],[36,8433,8435],{"className":8434},[3333],[36,8436,8438,8458],{"className":8437},[3337,4886],[36,8439,8441,8455],{"className":8440},[3341],[36,8442,8444],{"className":8443,"style":8266},[3345],[36,8445,8446,8449],{"style":4896},[36,8447],{"className":8448,"style":3354},[3353],[36,8450,8452],{"className":8451},[3358,3359,3360,3361],[36,8453,8134],{"className":8454,"style":3739},[2921,2922,3361],[36,8456,4910],{"className":8457},[4909],[36,8459,8461],{"className":8460},[3341],[36,8462,8464],{"className":8463,"style":4917},[3345],[36,8465],{},[36,8467,453],{"className":8468},[3267],[11,8470,8471],{},"找到一种合法划分方案，使得段数尽可能多，输出段数。",[11,8473,8474,8475,9071],{},"思路为：",[36,8476,8478,8632],{"className":8477},[2882],[36,8479,8481],{"className":8480},[2886],[2888,8482,8483],{"xmlns":2890},[2892,8484,8485,8629],{},[2895,8486,8487,8490,8492,8494,8496,8498,8500,8502,8504],{},[2898,8488,8489],{},"d",[2898,8491,11],{},[2970,8493,3936],{"stretchy":3214},[2898,8495,3899],{},[2970,8497,3941],{"stretchy":3214},[2970,8499,173],{},[2898,8501,8195],{},[2970,8503,3709],{},[2895,8505,8506,8508,8511,8513,8515,8517,8519,8521,8523,8525,8528,8530,8532,8534,8536,8538,8540,8544,8546,8548,8550,8556,8558,8570,8572,8574,8576,8588,8590,8592,8604,8606,8608,8610,8612,8614,8616,8618,8621,8623,8625,8627],{},[2970,8507,117],{"fence":1960},[2970,8509,8510],{"stretchy":3214},"{",[2898,8512,8489],{},[2898,8514,11],{},[2970,8516,3936],{"stretchy":3214},[2898,8518,4713],{},[2970,8520,3941],{"stretchy":3214},[2970,8522,2972],{},[3220,8524,218],{},[2970,8526,8527],{},"∣",[3220,8529,3329],{},[2970,8531,6465],{},[2898,8533,4713],{},[2970,8535,604],{},[2898,8537,3899],{},[2970,8539,259],{"separator":1960},[8541,8542,8543],"mtext",{}," ",[2898,8545,8195],{},[2970,8547,3709],{},[2970,8549,117],{"stretchy":3214},[4835,8551,8552,8554],{},[2898,8553,3933],{},[2898,8555,4713],{},[2970,8557,259],{"separator":1960},[4835,8559,8560,8562],{},[2898,8561,3933],{},[2895,8563,8564,8566,8568],{},[2898,8565,4713],{},[2970,8567,2972],{},[3220,8569,218],{},[2970,8571,259],{"separator":1960},[2970,8573,8224],{},[2970,8575,259],{"separator":1960},[4835,8577,8578,8580],{},[2898,8579,3933],{},[2895,8581,8582,8584,8586],{},[2898,8583,3899],{},[2970,8585,6002],{},[3220,8587,218],{},[2970,8589,453],{"stretchy":3214},[2970,8591,653],{},[4835,8593,8594,8596],{},[2898,8595,3933],{},[2895,8597,8598,8600,8602],{},[2898,8599,3899],{},[2970,8601,6002],{},[3220,8603,218],{},[2970,8605,259],{"separator":1960},[8541,8607,8543],{},[2898,8609,8489],{},[2898,8611,11],{},[2970,8613,3936],{"stretchy":3214},[2898,8615,4713],{},[2970,8617,3941],{"stretchy":3214},[2970,8619,8620],{"mathvariant":4444},"≠",[2970,8622,6002],{},[3220,8624,218],{},[2970,8626,6912],{"stretchy":3214},[2970,8628,453],{"fence":1960},[2902,8630,8631],{"encoding":2904},"dp[i] = \\max \\left( \\{ dp[j] + 1 \\mid 0 \\le j \u003C i,\\ \\max(a_j, a_{j+1}, \\dots, a_{i-1}) > a_{i-1},\\ dp[j] \\ne -1 \\} \\right)",[36,8633,8635,8665],{"className":8634,"ariaHidden":1960},[2908],[36,8636,8638,8641,8644,8647,8650,8653,8656,8659,8662],{"className":8637},[2912],[36,8639],{"className":8640,"style":3238},[2916],[36,8642,8489],{"className":8643},[2921,2922],[36,8645,11],{"className":8646},[2921,2922],[36,8648,3936],{"className":8649},[3242],[36,8651,3899],{"className":8652},[2921,2922],[36,8654,3941],{"className":8655},[3267],[36,8657],{"className":8658,"style":3565},[2994],[36,8660,173],{"className":8661},[3569],[36,8663],{"className":8664,"style":3565},[2994],[36,8666,8668,8671,8674,8677],{"className":8667},[2912],[36,8669],{"className":8670,"style":6128},[2916],[36,8672,8195],{"className":8673},[3746],[36,8675],{"className":8676,"style":3755},[2994],[36,8678,8680,8685,8688,8691,8694,8697,8700,8703,8706,8709,8712,8715,8718,8721,8724,8727,8730,8733,8736,8739,8742,8745,8748,8751,8754,8757,8760,8763,8766,8806,8809,8812,8861,8864,8867,8870,8873,8876,8879,8928,8931,8934,8937,8940,8989,8992,8995,8998,9001,9004,9007,9010,9013,9016,9056,9059,9062,9065,9068],{"className":8679},[8416],[36,8681,117],{"className":8682,"style":8684},[3242,8683],"delimcenter","top:0em;",[36,8686,8510],{"className":8687},[3242],[36,8689,8489],{"className":8690},[2921,2922],[36,8692,11],{"className":8693},[2921,2922],[36,8695,3936],{"className":8696},[3242],[36,8698,4713],{"className":8699,"style":4729},[2921,2922],[36,8701,3941],{"className":8702},[3267],[36,8704],{"className":8705,"style":2995},[2994],[36,8707,2972],{"className":8708},[2999],[36,8710],{"className":8711,"style":2995},[2994],[36,8713,218],{"className":8714},[2921],[36,8716],{"className":8717,"style":3565},[2994],[36,8719,8527],{"className":8720},[3569],[36,8722],{"className":8723,"style":3565},[2994],[36,8725,3329],{"className":8726},[2921],[36,8728],{"className":8729,"style":3565},[2994],[36,8731,6465],{"className":8732},[3569],[36,8734],{"className":8735,"style":3565},[2994],[36,8737,4713],{"className":8738,"style":4729},[2921,2922],[36,8740],{"className":8741,"style":3565},[2994],[36,8743,604],{"className":8744},[3569],[36,8746],{"className":8747,"style":3565},[2994],[36,8749,3899],{"className":8750},[2921,2922],[36,8752,259],{"className":8753},[8159],[36,8755,8543],{"className":8756},[2994],[36,8758],{"className":8759,"style":3755},[2994],[36,8761,8195],{"className":8762},[3746],[36,8764,117],{"className":8765},[3242],[36,8767,8769,8772],{"className":8768},[2921],[36,8770,3933],{"className":8771},[2921,2922],[36,8773,8775],{"className":8774},[3333],[36,8776,8778,8798],{"className":8777},[3337,4886],[36,8779,8781,8795],{"className":8780},[3341],[36,8782,8784],{"className":8783,"style":4893},[3345],[36,8785,8786,8789],{"style":4896},[36,8787],{"className":8788,"style":3354},[3353],[36,8790,8792],{"className":8791},[3358,3359,3360,3361],[36,8793,4713],{"className":8794,"style":4729},[2921,2922,3361],[36,8796,4910],{"className":8797},[4909],[36,8799,8801],{"className":8800},[3341],[36,8802,8804],{"className":8803,"style":5153},[3345],[36,8805],{},[36,8807,259],{"className":8808},[8159],[36,8810],{"className":8811,"style":3755},[2994],[36,8813,8815,8818],{"className":8814},[2921],[36,8816,3933],{"className":8817},[2921,2922],[36,8819,8821],{"className":8820},[3333],[36,8822,8824,8853],{"className":8823},[3337,4886],[36,8825,8827,8850],{"className":8826},[3341],[36,8828,8830],{"className":8829,"style":4893},[3345],[36,8831,8832,8835],{"style":4896},[36,8833],{"className":8834,"style":3354},[3353],[36,8836,8838],{"className":8837},[3358,3359,3360,3361],[36,8839,8841,8844,8847],{"className":8840},[2921,3361],[36,8842,4713],{"className":8843,"style":4729},[2921,2922,3361],[36,8845,2972],{"className":8846},[2999,3361],[36,8848,218],{"className":8849},[2921,3361],[36,8851,4910],{"className":8852},[4909],[36,8854,8856],{"className":8855},[3341],[36,8857,8859],{"className":8858,"style":5153},[3345],[36,8860],{},[36,8862,259],{"className":8863},[8159],[36,8865],{"className":8866,"style":3755},[2994],[36,8868,8224],{"className":8869},[8416],[36,8871],{"className":8872,"style":3755},[2994],[36,8874,259],{"className":8875},[8159],[36,8877],{"className":8878,"style":3755},[2994],[36,8880,8882,8885],{"className":8881},[2921],[36,8883,3933],{"className":8884},[2921,2922],[36,8886,8888],{"className":8887},[3333],[36,8889,8891,8920],{"className":8890},[3337,4886],[36,8892,8894,8917],{"className":8893},[3341],[36,8895,8897],{"className":8896,"style":4893},[3345],[36,8898,8899,8902],{"style":4896},[36,8900],{"className":8901,"style":3354},[3353],[36,8903,8905],{"className":8904},[3358,3359,3360,3361],[36,8906,8908,8911,8914],{"className":8907},[2921,3361],[36,8909,3899],{"className":8910},[2921,2922,3361],[36,8912,6002],{"className":8913},[2999,3361],[36,8915,218],{"className":8916},[2921,3361],[36,8918,4910],{"className":8919},[4909],[36,8921,8923],{"className":8922},[3341],[36,8924,8926],{"className":8925,"style":8404},[3345],[36,8927],{},[36,8929,453],{"className":8930},[3267],[36,8932],{"className":8933,"style":3565},[2994],[36,8935,653],{"className":8936},[3569],[36,8938],{"className":8939,"style":3565},[2994],[36,8941,8943,8946],{"className":8942},[2921],[36,8944,3933],{"className":8945},[2921,2922],[36,8947,8949],{"className":8948},[3333],[36,8950,8952,8981],{"className":8951},[3337,4886],[36,8953,8955,8978],{"className":8954},[3341],[36,8956,8958],{"className":8957,"style":4893},[3345],[36,8959,8960,8963],{"style":4896},[36,8961],{"className":8962,"style":3354},[3353],[36,8964,8966],{"className":8965},[3358,3359,3360,3361],[36,8967,8969,8972,8975],{"className":8968},[2921,3361],[36,8970,3899],{"className":8971},[2921,2922,3361],[36,8973,6002],{"className":8974},[2999,3361],[36,8976,218],{"className":8977},[2921,3361],[36,8979,4910],{"className":8980},[4909],[36,8982,8984],{"className":8983},[3341],[36,8985,8987],{"className":8986,"style":8404},[3345],[36,8988],{},[36,8990,259],{"className":8991},[8159],[36,8993,8543],{"className":8994},[2994],[36,8996],{"className":8997,"style":3755},[2994],[36,8999,8489],{"className":9000},[2921,2922],[36,9002,11],{"className":9003},[2921,2922],[36,9005,3936],{"className":9006},[3242],[36,9008,4713],{"className":9009,"style":4729},[2921,2922],[36,9011,3941],{"className":9012},[3267],[36,9014],{"className":9015,"style":3565},[2994],[36,9017,9019,9053],{"className":9018},[3569],[36,9020,9022],{"className":9021},[3569],[36,9023,9026],{"className":9024},[2921,9025],"vbox",[36,9027,9030],{"className":9028},[9029],"thinbox",[36,9031,9034,9038,9049],{"className":9032},[9033],"rlap",[36,9035],{"className":9036,"style":9037},[2916],"height:0.8889em;vertical-align:-0.1944em;",[36,9039,9042],{"className":9040},[9041],"inner",[36,9043,9045],{"className":9044},[2921],[36,9046,9048],{"className":9047},[3569],"",[36,9050],{"className":9051},[9052],"fix",[36,9054,173],{"className":9055},[3569],[36,9057],{"className":9058,"style":3565},[2994],[36,9060,6002],{"className":9061},[2921],[36,9063,218],{"className":9064},[2921],[36,9066,6912],{"className":9067},[3267],[36,9069,453],{"className":9070,"style":8684},[3267,8683],"，比较好理解。",[11,9073,9074,9075,9139,9140,9213],{},"这玩意肯定是对的，但是吧，这玩意得用线段树啥的优化成",[36,9076,9078,9104],{"className":9077},[2882],[36,9079,9081],{"className":9080},[2886],[2888,9082,9083],{"xmlns":2890},[2892,9084,9085,9101],{},[2895,9086,9087,9089,9091,9093,9095,9097,9099],{},[2898,9088,3701],{},[2970,9090,117],{"stretchy":3214},[2898,9092,3820],{},[2898,9094,3706],{},[2970,9096,3709],{},[2898,9098,3820],{},[2970,9100,453],{"stretchy":3214},[2902,9102,9103],{"encoding":2904},"O(n\\log n)",[36,9105,9107],{"className":9106,"ariaHidden":1960},[2908],[36,9108,9110,9113,9116,9119,9122,9125,9130,9133,9136],{"className":9109},[2912],[36,9111],{"className":9112,"style":3238},[2916],[36,9114,3701],{"className":9115,"style":3739},[2921,2922],[36,9117,117],{"className":9118},[3242],[36,9120,3820],{"className":9121},[2921,2922],[36,9123],{"className":9124,"style":3755},[2994],[36,9126,3747,9128],{"className":9127},[3746],[36,9129,3751],{"style":3750},[36,9131],{"className":9132,"style":3755},[2994],[36,9134,3820],{"className":9135},[2921,2922],[36,9137,453],{"className":9138},[3267],"才能过，要么就是我思路不合适，总之最后没优化完交了个",[36,9141,9143,9166],{"className":9142},[2882],[36,9144,9146],{"className":9145},[2886],[2888,9147,9148],{"xmlns":2890},[2892,9149,9150,9164],{},[2895,9151,9152,9154,9156,9162],{},[2898,9153,3701],{},[2970,9155,117],{"stretchy":3214},[3291,9157,9158,9160],{},[2898,9159,3820],{},[3220,9161,3438],{},[2970,9163,453],{"stretchy":3214},[2902,9165,4617],{"encoding":2904},[36,9167,9169],{"className":9168,"ariaHidden":1960},[2908],[36,9170,9172,9175,9178,9181,9210],{"className":9171},[2912],[36,9173],{"className":9174,"style":3313},[2916],[36,9176,3701],{"className":9177,"style":3739},[2921,2922],[36,9179,117],{"className":9180},[3242],[36,9182,9184,9187],{"className":9183},[2921],[36,9185,3820],{"className":9186},[2921,2922],[36,9188,9190],{"className":9189},[3333],[36,9191,9193],{"className":9192},[3337],[36,9194,9196],{"className":9195},[3341],[36,9197,9199],{"className":9198,"style":3346},[3345],[36,9200,9201,9204],{"style":3349},[36,9202],{"className":9203,"style":3354},[3353],[36,9205,9207],{"className":9206},[3358,3359,3360,3361],[36,9208,3438],{"className":9209},[2921,3361],[36,9211,453],{"className":9212},[3267],"的，T了一半的点，比较无语。好在亚马逊疑似知道自己给我端上一盆大的，还是给我面试了。",[15,9215],{},[11,9217,9218,9219,9421],{},"投行的OA也有一些有印象的，例如有道题得算乘法逆元不然会在这卡住：\n",[36,9220,9222,9284],{"className":9221},[2882],[36,9223,9225],{"className":9224},[2886],[2888,9226,9227],{"xmlns":2890},[2892,9228,9229,9281],{},[2895,9230,9231,9243,9246,9256,9258,9260,9263,9272,9275,9277,9279],{},[3291,9232,9233,9235],{},[2898,9234,3933],{},[2895,9236,9237,9239,9241],{},[2898,9238,11],{},[2970,9240,6002],{},[3220,9242,3438],{},[2970,9244,9245],{},"≡",[3291,9247,9248,9250],{},[2898,9249,3933],{},[2895,9251,9252,9254],{},[2970,9253,6002],{},[3220,9255,218],{},[2970,9257,117],{"stretchy":3214},[2994,9259],{},[2994,9261],{"width":9262},"0.6667em",[2895,9264,9265,9267,9270],{},[2898,9266,3431],{"mathvariant":4444},[2898,9268,9269],{"mathvariant":4444},"o",[2898,9271,8489],{"mathvariant":4444},[8541,9273,9274],{}," ",[8541,9276,9274],{},[2898,9278,11],{},[2970,9280,453],{"stretchy":3214},[2902,9282,9283],{"encoding":2904},"a^{p-2} \\equiv a^{-1}  (\\mod p)",[36,9285,9287,9340,9392],{"className":9286,"ariaHidden":1960},[2908],[36,9288,9290,9293,9331,9334,9337],{"className":9289},[2912],[36,9291],{"className":9292,"style":3346},[2916],[36,9294,9296,9299],{"className":9295},[2921],[36,9297,3933],{"className":9298},[2921,2922],[36,9300,9302],{"className":9301},[3333],[36,9303,9305],{"className":9304},[3337],[36,9306,9308],{"className":9307},[3341],[36,9309,9311],{"className":9310,"style":3346},[3345],[36,9312,9313,9316],{"style":3349},[36,9314],{"className":9315,"style":3354},[3353],[36,9317,9319],{"className":9318},[3358,3359,3360,3361],[36,9320,9322,9325,9328],{"className":9321},[2921,3361],[36,9323,11],{"className":9324},[2921,2922,3361],[36,9326,6002],{"className":9327},[2999,3361],[36,9329,3438],{"className":9330},[2921,3361],[36,9332],{"className":9333,"style":3565},[2994],[36,9335,9245],{"className":9336},[3569],[36,9338],{"className":9339,"style":3565},[2994],[36,9341,9343,9346,9381,9384,9388],{"className":9342},[2912],[36,9344],{"className":9345,"style":3313},[2916],[36,9347,9349,9352],{"className":9348},[2921],[36,9350,3933],{"className":9351},[2921,2922],[36,9353,9355],{"className":9354},[3333],[36,9356,9358],{"className":9357},[3337],[36,9359,9361],{"className":9360},[3341],[36,9362,9364],{"className":9363,"style":3346},[3345],[36,9365,9366,9369],{"style":3349},[36,9367],{"className":9368,"style":3354},[3353],[36,9370,9372],{"className":9371},[3358,3359,3360,3361],[36,9373,9375,9378],{"className":9374},[2921,3361],[36,9376,6002],{"className":9377},[2921,3361],[36,9379,218],{"className":9380},[2921,3361],[36,9382,117],{"className":9383},[3242],[36,9385],{"className":9386},[2994,9387],"allowbreak",[36,9389],{"className":9390,"style":9391},[2994],"margin-right:0.6667em;",[36,9393,9395,9398,9409,9412,9415,9418],{"className":9394},[2912],[36,9396],{"className":9397,"style":3238},[2916],[36,9399,9401],{"className":9400},[2921],[36,9402,9404],{"className":9403},[2921],[36,9405,9408],{"className":9406},[2921,9407],"mathrm","mod",[36,9410],{"className":9411,"style":3755},[2994],[36,9413],{"className":9414,"style":3755},[2994],[36,9416,11],{"className":9417},[2921,2922],[36,9419,453],{"className":9420},[3267],"。其实大部分都是模拟题，检测到底会不会写代码。",[15,9423],{},[11,9425,9426],{},"再例如比较简单的DP：",[2874,9428,9429,9432,9435],{},[11,9430,9431],{},"将一个数字串转化为英文字母串，即1~26可以转化为a~z，例如：",[11,9433,9434],{},"2112可以转换为baab、bal、ul、uba、bkb（不同分割方式）",[11,9436,9437],{},"输入：一个数字串，输出：其可以转换为的英文字母串的种类数。",[11,9439,9440,9441,9914,9915,9964,9965,10037],{},"思路就是：",[36,9442,9444,9562],{"className":9443},[2882],[36,9445,9447],{"className":9446},[2886],[2888,9448,9449],{"xmlns":2890},[2892,9450,9451,9559],{},[2895,9452,9453,9455,9457,9459,9461,9463,9465,9467,9469,9471,9473,9475,9477,9479,9482,9485,9488,9490,9492,9494,9496,9498,9500,9502,9504,9506,9508,9510,9512,9514,9516,9518,9520,9522,9524,9526,9528,9530,9532,9534,9536,9538,9540,9542,9544,9546,9548,9550,9552,9554,9557],{},[2898,9454,8489],{},[2898,9456,11],{},[2970,9458,3936],{"stretchy":3214},[2898,9460,3899],{},[2970,9462,3941],{"stretchy":3214},[2970,9464,173],{},[2898,9466,8489],{},[2898,9468,11],{},[2970,9470,3936],{"stretchy":3214},[2898,9472,3899],{},[2970,9474,6002],{},[3220,9476,218],{},[2970,9478,3941],{"stretchy":3214},[2970,9480,9481],{},"∗",[2970,9483,8510],{"fence":3214,"stretchy":1960,"minsize":9484,"maxsize":9484},"1.2em",[2898,9486,9487],{},"S",[2970,9489,3936],{"stretchy":3214},[2898,9491,3899],{},[2970,9493,6002],{},[3220,9495,218],{},[2970,9497,3941],{"stretchy":3214},[2970,9499,8620],{"mathvariant":4444},[3220,9501,3329],{},[2970,9503,6912],{"fence":3214,"stretchy":1960,"minsize":9484,"maxsize":9484},[2970,9505,2972],{},[2898,9507,8489],{},[2898,9509,11],{},[2970,9511,3936],{"stretchy":3214},[2898,9513,3899],{},[2970,9515,6002],{},[3220,9517,3438],{},[2970,9519,3941],{"stretchy":3214},[2970,9521,9481],{},[2970,9523,8510],{"fence":3214,"stretchy":1960,"minsize":9484,"maxsize":9484},[3220,9525,3295],{},[2970,9527,6465],{},[2898,9529,9487],{},[2970,9531,3936],{"stretchy":3214},[2898,9533,3899],{},[2970,9535,6002],{},[3220,9537,3438],{},[2970,9539,3941],{"stretchy":3214},[2898,9541,9487],{},[2970,9543,3936],{"stretchy":3214},[2898,9545,3899],{},[2970,9547,6002],{},[3220,9549,218],{},[2970,9551,3941],{"stretchy":3214},[2970,9553,6465],{},[3220,9555,9556],{},"26",[2970,9558,6912],{"fence":3214,"stretchy":1960,"minsize":9484,"maxsize":9484},[2902,9560,9561],{"encoding":2904},"dp[i]=dp[i-1]* \\big\\{S[i-1]\\ne 0\\big\\} + dp[i-2]*\\big\\{10\\leq S[i-2]S[i-1]\\leq 26 \\big\\}  ",[36,9563,9565,9595,9622,9643,9677,9728,9752,9779,9800,9824,9848,9878,9899],{"className":9564,"ariaHidden":1960},[2908],[36,9566,9568,9571,9574,9577,9580,9583,9586,9589,9592],{"className":9567},[2912],[36,9569],{"className":9570,"style":3238},[2916],[36,9572,8489],{"className":9573},[2921,2922],[36,9575,11],{"className":9576},[2921,2922],[36,9578,3936],{"className":9579},[3242],[36,9581,3899],{"className":9582},[2921,2922],[36,9584,3941],{"className":9585},[3267],[36,9587],{"className":9588,"style":3565},[2994],[36,9590,173],{"className":9591},[3569],[36,9593],{"className":9594,"style":3565},[2994],[36,9596,9598,9601,9604,9607,9610,9613,9616,9619],{"className":9597},[2912],[36,9599],{"className":9600,"style":3238},[2916],[36,9602,8489],{"className":9603},[2921,2922],[36,9605,11],{"className":9606},[2921,2922],[36,9608,3936],{"className":9609},[3242],[36,9611,3899],{"className":9612},[2921,2922],[36,9614],{"className":9615,"style":2995},[2994],[36,9617,6002],{"className":9618},[2999],[36,9620],{"className":9621,"style":2995},[2994],[36,9623,9625,9628,9631,9634,9637,9640],{"className":9624},[2912],[36,9626],{"className":9627,"style":3238},[2916],[36,9629,218],{"className":9630},[2921],[36,9632,3941],{"className":9633},[3267],[36,9635],{"className":9636,"style":2995},[2994],[36,9638,9481],{"className":9639},[2999],[36,9641],{"className":9642,"style":2995},[2994],[36,9644,9646,9650,9658,9662,9665,9668,9671,9674],{"className":9645},[2912],[36,9647],{"className":9648,"style":9649},[2916],"height:1.2em;vertical-align:-0.35em;",[36,9651,9653],{"className":9652},[2921],[36,9654,8510],{"className":9655},[9656,9657],"delimsizing","size1",[36,9659,9487],{"className":9660,"style":9661},[2921,2922],"margin-right:0.05764em;",[36,9663,3936],{"className":9664},[3242],[36,9666,3899],{"className":9667},[2921,2922],[36,9669],{"className":9670,"style":2995},[2994],[36,9672,6002],{"className":9673},[2999],[36,9675],{"className":9676,"style":2995},[2994],[36,9678,9680,9683,9686,9689,9692,9725],{"className":9679},[2912],[36,9681],{"className":9682,"style":3238},[2916],[36,9684,218],{"className":9685},[2921],[36,9687,3941],{"className":9688},[3267],[36,9690],{"className":9691,"style":3565},[2994],[36,9693,9695,9722],{"className":9694},[3569],[36,9696,9698],{"className":9697},[3569],[36,9699,9701],{"className":9700},[2921,9025],[36,9702,9704],{"className":9703},[9029],[36,9705,9707,9710,9719],{"className":9706},[9033],[36,9708],{"className":9709,"style":9037},[2916],[36,9711,9713],{"className":9712},[9041],[36,9714,9716],{"className":9715},[2921],[36,9717,9048],{"className":9718},[3569],[36,9720],{"className":9721},[9052],[36,9723,173],{"className":9724},[3569],[36,9726],{"className":9727,"style":3565},[2994],[36,9729,9731,9734,9737,9743,9746,9749],{"className":9730},[2912],[36,9732],{"className":9733,"style":9649},[2916],[36,9735,3329],{"className":9736},[2921],[36,9738,9740],{"className":9739},[2921],[36,9741,6912],{"className":9742},[9656,9657],[36,9744],{"className":9745,"style":2995},[2994],[36,9747,2972],{"className":9748},[2999],[36,9750],{"className":9751,"style":2995},[2994],[36,9753,9755,9758,9761,9764,9767,9770,9773,9776],{"className":9754},[2912],[36,9756],{"className":9757,"style":3238},[2916],[36,9759,8489],{"className":9760},[2921,2922],[36,9762,11],{"className":9763},[2921,2922],[36,9765,3936],{"className":9766},[3242],[36,9768,3899],{"className":9769},[2921,2922],[36,9771],{"className":9772,"style":2995},[2994],[36,9774,6002],{"className":9775},[2999],[36,9777],{"className":9778,"style":2995},[2994],[36,9780,9782,9785,9788,9791,9794,9797],{"className":9781},[2912],[36,9783],{"className":9784,"style":3238},[2916],[36,9786,3438],{"className":9787},[2921],[36,9789,3941],{"className":9790},[3267],[36,9792],{"className":9793,"style":2995},[2994],[36,9795,9481],{"className":9796},[2999],[36,9798],{"className":9799,"style":2995},[2994],[36,9801,9803,9806,9812,9815,9818,9821],{"className":9802},[2912],[36,9804],{"className":9805,"style":9649},[2916],[36,9807,9809],{"className":9808},[2921],[36,9810,8510],{"className":9811},[9656,9657],[36,9813,3295],{"className":9814},[2921],[36,9816],{"className":9817,"style":3565},[2994],[36,9819,6465],{"className":9820},[3569],[36,9822],{"className":9823,"style":3565},[2994],[36,9825,9827,9830,9833,9836,9839,9842,9845],{"className":9826},[2912],[36,9828],{"className":9829,"style":3238},[2916],[36,9831,9487],{"className":9832,"style":9661},[2921,2922],[36,9834,3936],{"className":9835},[3242],[36,9837,3899],{"className":9838},[2921,2922],[36,9840],{"className":9841,"style":2995},[2994],[36,9843,6002],{"className":9844},[2999],[36,9846],{"className":9847,"style":2995},[2994],[36,9849,9851,9854,9857,9860,9863,9866,9869,9872,9875],{"className":9850},[2912],[36,9852],{"className":9853,"style":3238},[2916],[36,9855,3438],{"className":9856},[2921],[36,9858,3941],{"className":9859},[3267],[36,9861,9487],{"className":9862,"style":9661},[2921,2922],[36,9864,3936],{"className":9865},[3242],[36,9867,3899],{"className":9868},[2921,2922],[36,9870],{"className":9871,"style":2995},[2994],[36,9873,6002],{"className":9874},[2999],[36,9876],{"className":9877,"style":2995},[2994],[36,9879,9881,9884,9887,9890,9893,9896],{"className":9880},[2912],[36,9882],{"className":9883,"style":3238},[2916],[36,9885,218],{"className":9886},[2921],[36,9888,3941],{"className":9889},[3267],[36,9891],{"className":9892,"style":3565},[2994],[36,9894,6465],{"className":9895},[3569],[36,9897],{"className":9898,"style":3565},[2994],[36,9900,9902,9905,9908],{"className":9901},[2912],[36,9903],{"className":9904,"style":9649},[2916],[36,9906,9556],{"className":9907},[2921],[36,9909,9911],{"className":9910},[2921],[36,9912,6912],{"className":9913},[9656,9657],"，最后输出",[36,9916,9918,9940],{"className":9917},[2882],[36,9919,9921],{"className":9920},[2886],[2888,9922,9923],{"xmlns":2890},[2892,9924,9925,9937],{},[2895,9926,9927,9929,9931,9933,9935],{},[2898,9928,8489],{},[2898,9930,11],{},[2970,9932,3936],{"stretchy":3214},[2898,9934,3820],{},[2970,9936,3941],{"stretchy":3214},[2902,9938,9939],{"encoding":2904},"dp[n]",[36,9941,9943],{"className":9942,"ariaHidden":1960},[2908],[36,9944,9946,9949,9952,9955,9958,9961],{"className":9945},[2912],[36,9947],{"className":9948,"style":3238},[2916],[36,9950,8489],{"className":9951},[2921,2922],[36,9953,11],{"className":9954},[2921,2922],[36,9956,3936],{"className":9957},[3242],[36,9959,3820],{"className":9960},[2921,2922],[36,9962,3941],{"className":9963},[3267],"，其中",[36,9966,9968,9995],{"className":9967},[2882],[36,9969,9971],{"className":9970},[2886],[2888,9972,9973],{"xmlns":2890},[2892,9974,9975,9992],{},[2895,9976,9977,9979,9981,9984,9986,9988,9990],{},[2898,9978,9487],{},[2970,9980,3936],{"stretchy":3214},[3220,9982,9983],{},"0..",[2898,9985,3820],{},[2970,9987,6002],{},[3220,9989,218],{},[2970,9991,3941],{"stretchy":3214},[2902,9993,9994],{"encoding":2904},"S[0..n-1]",[36,9996,9998,10025],{"className":9997,"ariaHidden":1960},[2908],[36,9999,10001,10004,10007,10010,10013,10016,10019,10022],{"className":10000},[2912],[36,10002],{"className":10003,"style":3238},[2916],[36,10005,9487],{"className":10006,"style":9661},[2921,2922],[36,10008,3936],{"className":10009},[3242],[36,10011,9983],{"className":10012},[2921],[36,10014,3820],{"className":10015},[2921,2922],[36,10017],{"className":10018,"style":2995},[2994],[36,10020,6002],{"className":10021},[2999],[36,10023],{"className":10024,"style":2995},[2994],[36,10026,10028,10031,10034],{"className":10027},[2912],[36,10029],{"className":10030,"style":3238},[2916],[36,10032,218],{"className":10033},[2921],[36,10035,3941],{"className":10036},[3267],"为输入的数字串，大括号内表达式真为1，假为0。",[11,10039,10040,10041,10090,10091,10119],{},"解释一下，",[36,10042,10044,10066],{"className":10043},[2882],[36,10045,10047],{"className":10046},[2886],[2888,10048,10049],{"xmlns":2890},[2892,10050,10051,10063],{},[2895,10052,10053,10055,10057,10059,10061],{},[2898,10054,8489],{},[2898,10056,11],{},[2970,10058,3936],{"stretchy":3214},[2898,10060,3899],{},[2970,10062,3941],{"stretchy":3214},[2902,10064,10065],{"encoding":2904},"dp[i]",[36,10067,10069],{"className":10068,"ariaHidden":1960},[2908],[36,10070,10072,10075,10078,10081,10084,10087],{"className":10071},[2912],[36,10073],{"className":10074,"style":3238},[2916],[36,10076,8489],{"className":10077},[2921,2922],[36,10079,11],{"className":10080},[2921,2922],[36,10082,3936],{"className":10083},[3242],[36,10085,3899],{"className":10086},[2921,2922],[36,10088,3941],{"className":10089},[3267],"表示前",[36,10092,10094,10107],{"className":10093},[2882],[36,10095,10097],{"className":10096},[2886],[2888,10098,10099],{"xmlns":2890},[2892,10100,10101,10105],{},[2895,10102,10103],{},[2898,10104,3899],{},[2902,10106,3899],{"encoding":2904},[36,10108,10110],{"className":10109,"ariaHidden":1960},[2908],[36,10111,10113,10116],{"className":10112},[2912],[36,10114],{"className":10115,"style":3911},[2916],[36,10117,3899],{"className":10118},[2921,2922],"个字符的解码方式数；如果当前单个字符可以合法转换为字母（即1~9），就在前i-1的基础上贡献一种解码方式；如果当前和上一个字符可以合法转换为字母（即10~26），也在前i-2位的基础上贡献一种解码方式。",[15,10121],{},[11,10123,10124],{},"到了面试环节，题目就更加简单。例如亚马逊面试给的题：",[2874,10126,10127],{},[11,10128,10129,10130,10158,10159,10187],{},"给一个长度为",[36,10131,10133,10146],{"className":10132},[2882],[36,10134,10136],{"className":10135},[2886],[2888,10137,10138],{"xmlns":2890},[2892,10139,10140,10144],{},[2895,10141,10142],{},[2898,10143,3820],{},[2902,10145,3820],{"encoding":2904},[36,10147,10149],{"className":10148,"ariaHidden":1960},[2908],[36,10150,10152,10155],{"className":10151},[2912],[36,10153],{"className":10154,"style":2950},[2916],[36,10156,3820],{"className":10157},[2921,2922],"的数组，每个元素都是一个英文单词(最大长度",[36,10160,10162,10175],{"className":10161},[2882],[36,10163,10165],{"className":10164},[2886],[2888,10166,10167],{"xmlns":2890},[2892,10168,10169,10173],{},[2895,10170,10171],{},[2898,10172,3431],{},[2902,10174,3431],{"encoding":2904},[36,10176,10178],{"className":10177,"ariaHidden":1960},[2908],[36,10179,10181,10184],{"className":10180},[2912],[36,10182],{"className":10183,"style":2950},[2916],[36,10185,3431],{"className":10186},[2921,2922],")，你要找出其中所有的复合词（可以由数组中其他两个元素拼接而成的词）。",[11,10189,10190,10191,10260,10261,10312],{},"这是可以一直优化的题目，我优化到",[36,10192,10194,10224],{"className":10193},[2882],[36,10195,10197],{"className":10196},[2886],[2888,10198,10199],{"xmlns":2890},[2892,10200,10201,10221],{},[2895,10202,10203,10205,10207,10209,10211,10213,10215,10217,10219],{},[2898,10204,3701],{},[2970,10206,117],{"stretchy":3214},[2898,10208,3820],{},[2898,10210,3431],{},[2898,10212,3706],{},[2970,10214,3709],{},[2898,10216,3820],{},[2898,10218,3431],{},[2970,10220,453],{"stretchy":3214},[2902,10222,10223],{"encoding":2904},"O(nm\\log nm)",[36,10225,10227],{"className":10226,"ariaHidden":1960},[2908],[36,10228,10230,10233,10236,10239,10243,10246,10251,10254,10257],{"className":10229},[2912],[36,10231],{"className":10232,"style":3238},[2916],[36,10234,3701],{"className":10235,"style":3739},[2921,2922],[36,10237,117],{"className":10238},[3242],[36,10240,10242],{"className":10241},[2921,2922],"nm",[36,10244],{"className":10245,"style":3755},[2994],[36,10247,3747,10249],{"className":10248},[3746],[36,10250,3751],{"style":3750},[36,10252],{"className":10253,"style":3755},[2994],[36,10255,10242],{"className":10256},[2921,2922],[36,10258,453],{"className":10259},[3267],"那哥们就不想理我了，虽然最后又优化成",[36,10262,10264,10288],{"className":10263},[2882],[36,10265,10267],{"className":10266},[2886],[2888,10268,10269],{"xmlns":2890},[2892,10270,10271,10285],{},[2895,10272,10273,10275,10277,10279,10281,10283],{},[2898,10274,3701],{},[2970,10276,117],{"stretchy":3214},[3220,10278,9556],{},[2898,10280,3820],{},[2898,10282,3431],{},[2970,10284,453],{"stretchy":3214},[2902,10286,10287],{"encoding":2904},"O(26nm)",[36,10289,10291],{"className":10290,"ariaHidden":1960},[2908],[36,10292,10294,10297,10300,10303,10306,10309],{"className":10293},[2912],[36,10295],{"className":10296,"style":3238},[2916],[36,10298,3701],{"className":10299,"style":3739},[2921,2922],[36,10301,117],{"className":10302},[3242],[36,10304,9556],{"className":10305},[2921],[36,10307,10242],{"className":10308},[2921,2922],[36,10310,453],{"className":10311},[3267],"，用了字典树，但感觉那哥们也没想到这个，在那啊对对对，给我过了。",[15,10314],{},[11,10316,10317],{},"面试里更多是耗时间的水题，例如如何把指针连接的二叉树存到文件里，然后读出来；设计五子棋游戏变量结构以及关键方法；如何将会议编号稳定映射到一个固定服务器，并在超载时切换服务器...",[15,10319],{},[11,10321,10322],{},"感觉到了面试这一步更多就是行测了，以及一些运气。技术水平呢，我认为到我这个水平就够了。",{"title":31,"searchDepth":50,"depth":50,"links":10324},[],"uk.png","不是哥们，这么简单吗？",{},"/posts/uk-algorithm",{"title":8056,"description":10326},"posts/uk-algorithm","lAYOpJvc3PjOjzAvJJsD_WMVL4jF0qtbAt-txv_5UBM",{"id":10333,"title":10334,"body":10335,"category":7992,"cover":10354,"coverAlt":2850,"date":10355,"description":10356,"extension":2853,"meta":10357,"navigation":61,"path":10358,"pinned":2856,"seo":10359,"stem":10360,"__hash__":10361},"posts/posts/london_bank.md","英格兰银行",{"type":8,"value":10336,"toc":10352},[10337,10340,10343,10346,10349],[11,10338,10339],{},"伦敦地铁中央线上有一站：Bank。起初以为是某个为本地人熟知的岸边，结果发现就是银行。",[11,10341,10342],{},"英格兰银行，资本主义崛起的核心，工业时代的见证者，现存最古老货币的发行者，出现在这里当然不意外。我的钱包里还有一些贵族朋友和它有一些关系。",[11,10344,10345],{},"凭什么它可以独占银行这个名词？可能是它所在的城市的举托，才让这里有资格成为一些世界熟知的东西。这里的浅滩是Strand，纪念碑是Monument，神庙是Temple。比起我的家，这里也只是五脏俱全的巨兽罢了。",[11,10347,10348],{},"我家附近也有理工大，也有教堂，也有植物园和矿山。大家谈起理工大，可能是马萨诸塞的，也可能是海淀的，但不太可能是张店的。",[11,10350,10351],{},"有些城市偶然成了名城，但还是有着这些人生活的痕迹。如果当年齐国统一了天下，淄博植物园也会是繁忙交通网络中的“植物园”，会成为某个盎格鲁蛮子眼中属于当地人，也暂时属于自己的植物园。",{"title":31,"searchDepth":50,"depth":50,"links":10353},[],"bank_of_england.png","2025-08-18","有些银行不叫中国工商银行淄博张店新村西路支行",{},"/posts/london_bank",{"title":10334,"description":10356},"posts/london_bank","vkIJ4vzHqnkCGQh3RNKM1aeWtvZZkCn3P4-IvxIhbkw",{"id":10363,"title":10364,"body":10365,"category":10383,"cover":10384,"coverAlt":2850,"date":10385,"description":10386,"extension":2853,"meta":10387,"navigation":61,"path":10388,"pinned":2856,"seo":10389,"stem":10390,"__hash__":10391},"posts/posts/emotion-radio.md","深夜情感电台·第一期",{"type":8,"value":10366,"toc":10381},[10367,10372,10375,10378],[2874,10368,10369],{},[11,10370,10371],{},"如果情绪有颜色，今晚大概是柔和的蓝色。 —— GPT 5",[11,10373,10374],{},"蓝色，什么是蓝色，像是一个默认的中性色。不是通过的绿色，不是挂掉的红色。就是怎么解读都可以。",[11,10376,10377],{},"这里要写点什么，也都是为赋新词强说愁。在感情相对稳定的时期很难有什么东西可以电台的，我留下的一些乱七八糟的文字也都是在各种变故中拉扯出的裂缝流出来的。",[11,10379,10380],{},"岁月的痕迹在我这目前还并不明显，在没有性激素作祟的日子里，我想干的还是早起贪黑打游戏。哪怕守着几万元的摄影设备外加一座伦敦城，我也还是能做到不出家门一步，靠着保质期超长的大米和通心粉维持生命。",{"title":31,"searchDepth":50,"depth":50,"links":10382},[],"emotion","telegram.png","2025-08-17","我看不见。",{},"/posts/emotion-radio",{"title":10364,"description":10386},"posts/emotion-radio","RG7LeXVOwVVOMc1N9Kfs8dxvVUjQKBOBqmd81zGXTeM",{"id":10393,"title":10394,"body":10395,"category":2848,"cover":10601,"coverAlt":2850,"date":10602,"description":10603,"extension":2853,"meta":10604,"navigation":61,"path":10605,"pinned":2856,"seo":10606,"stem":10607,"__hash__":10608},"posts/posts/previous-arch.md","往年题解",{"type":8,"value":10396,"toc":10599},[10397,10553,10555,10575,10578,10581,10584,10587,10590,10593,10596],[3617,10398,4576,10401,4576,10416],{"className":10399},[10400],"arch-table",[3620,10402,10403,10404,4576],{},"\n    ",[3623,10405,10406,10407,10406,10410,10406,10413,10403],{},"\n      ",[3626,10408,10409],{},"日期",[3626,10411,10412],{},"标题",[3626,10414,10415],{},"标签",[3647,10417,10403,10418,10403,10436,10403,10450,10403,10465,10403,10480,10403,10494,10403,10509,10403,10524,10403,10538,4576],{},[3623,10419,10406,10420,10406,10423,10406,10433,10403],{},[3652,10421,10422],{},"2017-10-14",[3652,10424,10425,10426],{},"P1481 魔族密码 ",[3933,10427,10432],{"href":10428,"target":10429,"rel":10430},"https://www.luogu.com.cn/article/efv6150k","_blank",[10431],"noopener","🔗",[3652,10434,10435],{},"动态规划",[3623,10437,10406,10438,10406,10441,10406,10448,10403],{},[3652,10439,10440],{},"2017-10-15",[3652,10442,10443,10444],{},"P1387 最大正方形 ",[3933,10445,10432],{"href":10446,"target":10429,"rel":10447},"https://www.luogu.com.cn/article/xkols31z",[10431],[3652,10449,10435],{},[3623,10451,10406,10452,10406,10455,10406,10462,10403],{},[3652,10453,10454],{},"2017-12-22",[3652,10456,10457,10458],{},"P1100 高低位交换 ",[3933,10459,10432],{"href":10460,"target":10429,"rel":10461},"https://www.luogu.com.cn/article/snkc5ukr",[10431],[3652,10463,10464],{},"水题",[3623,10466,10406,10467,10406,10470,10406,10477,10403],{},[3652,10468,10469],{},"2018-01-02",[3652,10471,10472,10473],{},"P1886 滑动窗口 ",[3933,10474,10432],{"href":10475,"target":10429,"rel":10476},"https://www.luogu.com.cn/article/rf6kuc6m",[10431],[3652,10478,10479],{},"线段树",[3623,10481,10406,10482,10406,10485,10406,10492,10403],{},[3652,10483,10484],{},"2018-01-25",[3652,10486,10487,10488],{},"SCOI2010 序列操作 ",[3933,10489,10432],{"href":10490,"target":10429,"rel":10491},"https://www.luogu.com.cn/article/6dvbpg72",[10431],[3652,10493,10479],{},[3623,10495,10406,10496,10406,10499,10406,10506,10403],{},[3652,10497,10498],{},"2018-03-10",[3652,10500,10501,10502],{},"JSOI2009 等差数列 ",[3933,10503,10432],{"href":10504,"target":10429,"rel":10505},"https://blog.csdn.net/Baling_haku/article/details/79512263",[10431],[3652,10507,10508],{},"线段树 / 差分",[3623,10510,10406,10511,10406,10514,10406,10521,10403],{},[3652,10512,10513],{},"2018-04-10",[3652,10515,10516,10517],{},"P3393 逃离僵尸岛 ",[3933,10518,10432],{"href":10519,"target":10429,"rel":10520},"https://www.luogu.com.cn/article/mxvo1wer",[10431],[3652,10522,10523],{},"最大流",[3623,10525,10406,10526,10406,10529,10406,10536,10403],{},[3652,10527,10528],{},"2020-11-13",[3652,10530,10531,10532],{},"ACPC2013 马里奥赛车 ",[3933,10533,10432],{"href":10534,"target":10429,"rel":10535},"https://blog.csdn.net/Baling_haku/article/details/109684215",[10431],[3652,10537,10435],{},[3623,10539,10406,10540,10406,10543,10406,10550,10403],{},[3652,10541,10542],{},"2021-08-12",[3652,10544,10545,10546],{},"2021 牛客暑期多校 7-F xay loves trees ",[3933,10547,10432],{"href":10548,"target":10429,"rel":10549},"https://blog.csdn.net/Baling_haku/article/details/119645035",[10431],[3652,10551,10552],{},"可持久化线段树",[15,10554],{},[2874,10556,10557,10560,10563,10566,10569,10572],{},[11,10558,10559],{},"🎵 你在 OJ 上提交了千百遍 🎵",[11,10561,10562],{},"🎵 却依然不能卡进那时限 🎵",[11,10564,10565],{},"🎵 双手敲尽代码也敲尽岁月 🎵",[11,10567,10568],{},"🎵 只有我一人 🎵",[11,10570,10571],{},"🎵 写的题解 🎵",[11,10573,10574],{},"🎵 凋零在 OJ 里面 🎵",[11,10576,10577],{},"人们总是说，绕远的路，总有风景。",[11,10579,10580],{},"我高考那年，是自主招生取消的第一年，也是“强基计划”的第一年。所谓教育公平，让家长们对信息学竞赛失去了信心，我作为昔日的山东省第六名（其实不作数，因为厉害的初中生都去打提高组了），还是在这条路上漫无目的地走。",[11,10582,10583],{},"有人清醒地知道，这一年过后，这条路如果没有走到银牌，那就相当于没什么用。很多人拿到一个复赛的奖项就退出了，那么即使滥竽充数的我在留下来的人中也可以取得一定成绩，我至今不知道为什么高一就是一等奖，明明什么高级算法都还没学。",[11,10585,10586],{},"我作为菜鸟，这种政策下自然只会发发牢骚，什么“兰博基尼五元优惠券”的段子层出不穷。毕竟金牌的学长没空关心这个。我当然也知道，这本来没什么不公平的，两位保送的学长凭文化课也是轻松考进清北。",[11,10588,10589],{},"我的结局也只是靠着文化课进入了山东大学。省一等奖在自主招生也算是有了一些用处，即使我在面试的时候说说迪杰斯特拉是基于搜索的，他们还是给了我校试90多分的成绩。另一位高考失利的同伴也是一样的情况，但高考分数权重太大了，他没进来。靠结果来看，相当于给我的高考分数加了11分进入计算机类，免去了先进生化环材转专业的麻烦。",[11,10591,10592],{},"我在这方面恐怕是没什么天赋的，当然勤奋也是一种天赋（而我没有），在山大的铜牌队伍里混吃等死。面试官看见我有竞赛经历直接给我扔难题，我还不一定解得出来。",[11,10594,10595],{},"OI圈子几乎都是计算机的预备队，当年认识的人基本也都是在计算机行业，我也是其中的一员。这里的人也是鱼龙混杂，有一进大学就趾高气昂的，有积极解答问题的。当然最有意思的是近水楼台先得男娘笑话。我大一也买过一套女装，感觉还像模像样的，但这已经足够爽到我了。身边特别是打得好的选手，老是能听到他们变成木桶饭，我觉得是个值得研究的课题。感叹我还好没打明白，不然我也要打出某个粉红粉蓝旗帜了。",[11,10597,10598],{},"草，这cursor补全markdown真应该打开，太有节目效果了，精准吐槽我写的每一句话。",{"title":31,"searchDepth":50,"depth":50,"links":10600},[],"noi.png","2025-08-15","只有我一人，写的题解，凋零在oj里面",{},"/posts/previous-arch",{"title":10394,"description":10603},"posts/previous-arch","CsT8TnRhiRcBcuLrzLXqV2Q95Fk5jlxpIQ7X1GAQuuc",{"id":10610,"title":10611,"body":10612,"category":7856,"cover":10701,"coverAlt":2850,"date":10702,"description":10703,"extension":2853,"meta":10704,"navigation":61,"path":10705,"pinned":2856,"seo":10706,"stem":10707,"__hash__":10708},"posts/posts/devlog-fix.md","QML笑传之ComboComboBox",{"type":8,"value":10613,"toc":10699},[10614,10617,10622,10625,10628,10693,10696],[11,10615,10616],{},"调整前端布局的方式有很多，但是这个有点意外。",[2874,10618,10619],{},[11,10620,10621],{},"现在我明白问题所在了！",[11,10623,10624],{},"最近用上了cursor，别的不说，虽然离自然语言编程有点距离，但情绪价值是拉满的，我也在这一声声你是对的里面不断给大模型机会，希望他能真正找到问题。",[11,10626,10627],{},"但是这一次，我是真的错怪大模型了。QML的底层代码简直是一坨狗屎，很多问题在stackoverflow甚至搜不到，这次的项目中，我们遇到了一个GUI会莫名其妙变形挤压的问题，本以为是自己学艺不精在哪里配错了css，但忙了一下午，由下面一段代码修复了问题：",[26,10629,10633],{"className":10630,"code":10631,"language":10632,"meta":31,"style":31},"language-qml shiki shiki-themes one-dark-pro one-dark-pro min-light"," ComboBox {\n    width: 0\n    height: 40\n    model: [\"Don't remove this ComboBox\"]\n    indicator: Canvas {}\n}\n","qml",[33,10634,10635,10642,10652,10662,10676,10689],{"__ignoreMap":31},[36,10636,10637,10640],{"class":38,"line":39},[36,10638,10639],{"class":93}," ComboBox",[36,10641,97],{"class":78},[36,10643,10644,10647,10650],{"class":38,"line":50},[36,10645,10646],{"class":123},"    width",[36,10648,10649],{"class":78},": ",[36,10651,7661],{"class":217},[36,10653,10654,10657,10659],{"class":38,"line":58},[36,10655,10656],{"class":123},"    height",[36,10658,10649],{"class":78},[36,10660,10661],{"class":217},"40\n",[36,10663,10664,10667,10670,10673],{"class":38,"line":65},[36,10665,10666],{"class":123},"    model",[36,10668,10669],{"class":78},": [",[36,10671,10672],{"class":46},"\"Don't remove this ComboBox\"",[36,10674,10675],{"class":78},"]\n",[36,10677,10678,10681,10683,10686],{"class":38,"line":82},[36,10679,10680],{"class":123},"    indicator",[36,10682,10649],{"class":78},[36,10684,10685],{"class":93},"Canvas",[36,10687,10688],{"class":78}," {}\n",[36,10690,10691],{"class":38,"line":87},[36,10692,2086],{"class":78},[11,10694,10695],{},"这个不会显示任何东西，但可以为QML的莫名其妙distortion挡下一刀，维持其他组件的正常运转。很神奇吧。",[2831,10697,10698],{},"html pre.shiki code .s1pBA, html code.shiki .s1pBA{--shiki-default:#E5C07B;--shiki-dark:#E5C07B;--shiki-light:#6F42C1}html pre.shiki code .s0bQm, html code.shiki .s0bQm{--shiki-default:#ABB2BF;--shiki-dark:#ABB2BF;--shiki-light:#24292EFF}html pre.shiki code .sQkFB, html code.shiki .sQkFB{--shiki-default:#E06C75;--shiki-default-font-style:italic;--shiki-dark:#E06C75;--shiki-dark-font-style:italic;--shiki-light:#24292EFF;--shiki-light-font-style:inherit}html pre.shiki code .sWEYk, html code.shiki .sWEYk{--shiki-default:#D19A66;--shiki-dark:#D19A66;--shiki-light:#1976D2}html pre.shiki code .sZaK-, html code.shiki .sZaK-{--shiki-default:#98C379;--shiki-dark:#98C379;--shiki-light:#22863A}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}",{"title":31,"searchDepth":50,"depth":50,"links":10700},[],"ccb.png","2025-08-14","靠近QML，人生就会变得不幸",{},"/posts/devlog-fix",{"title":10611,"description":10703},"posts/devlog-fix","_GngkvQZSsNTVxim3oWAU6JcBCkW_zWdGPbEDHSXtOU",{"id":10710,"title":10711,"body":10712,"category":7992,"cover":10731,"coverAlt":2850,"date":10702,"description":10732,"extension":2853,"meta":10733,"navigation":61,"path":10734,"pinned":2856,"seo":10735,"stem":10736,"__hash__":10737},"posts/posts/life-thoughts.md","斯坦德机场快线",{"type":8,"value":10713,"toc":10729},[10714,10717,10720,10723,10726],[11,10715,10716],{},"视线穿过肤色各异的人群，还是能看到远处的伦敦城雾蒙蒙的，可能比两百年前好一些吧。酸黄瓜、听筒，这个天际线很难和从小听到大的世界城市伦敦联系起来，繁华程度不如汉峪金谷。",[11,10718,10719],{},"我急着赶上八点半开往城站的火车，其实更像大地铁，平均十分钟就来一班。至于为什么要赶，只是不想在站台傻等罢了。大盎格利亚铁路公司的服务很好，如果是平峰还能轻松坐到一等座，并不逊色于国内高铁。",[11,10721,10722],{},"八点半正是伦敦城的早高峰，这座世界金融中心九点就要全面开张了。左边的中年白男在这通勤火车上修改着文档，就像京沪铁路上看到的一样，不知道他此程创造的价值是否能赚回3.8英镑起步的火车票。",[11,10724,10725],{},"车上很拥挤，我所在的托特那姆谷也是远方来客的目的地，恩菲尔德、剑桥...我们在第三区接力，为这座古老的城市输血。",[11,10727,10728],{},"火车快到站了，不知这里是否有我的容身之所。去还是留，这是个问题。伦敦和所有其他欧洲城市一样，像年久失修的代码，勉强维护着日不落帝国的风光。",{"title":31,"searchDepth":50,"depth":50,"links":10730},[],"greater_anglia.png","哈灵盖人的PATH",{},"/posts/life-thoughts",{"title":10711,"description":10732},"posts/life-thoughts","vkIpQ7hiBexl8UgSYElMwWpA3q-NtHFQ25Ch52fGTT0",{"id":10739,"title":10740,"body":10741,"category":10771,"cover":10772,"coverAlt":2850,"date":10773,"description":10774,"extension":2853,"meta":10775,"navigation":61,"path":10776,"pinned":61,"seo":10777,"stem":10778,"__hash__":10779},"posts/posts/hello-world.md","你好，世界",{"type":8,"value":10742,"toc":10769},[10743,10746,10760,10763,10766],[11,10744,10745],{},"欢迎来到我的新博客。这是一篇用于测试的 Markdown 文章。",[26,10747,10749],{"className":7484,"code":10748,"language":7486,"meta":31,"style":31},"echo \"hello blog\"\n",[33,10750,10751],{"__ignoreMap":31},[36,10752,10753,10757],{"class":38,"line":39},[36,10754,10756],{"class":10755},"sZo8d","echo",[36,10758,10759],{"class":46}," \"hello blog\"\n",[11,10761,10762],{},"英属印度洋领地的DNS服务器，引到了我在网络世界的偏安一隅。",[11,10764,10765],{},"这让我找到了一丝掌控感，没有审核、付费主题，也没有广告、压图。我摆布着千里之外服务器上的0101，就可以做到字面意义上的为所欲为，连发布日期我都可以随意修改。当然Git历史相对不那么好改，但想必不会有人看到这里，也就更不会有人去看审计Git历史了。",[2831,10767,10768],{},"html pre.shiki code .sZo8d, html code.shiki .sZo8d{--shiki-default:#56B6C2;--shiki-dark:#56B6C2;--shiki-light:#6F42C1}html pre.shiki code .sZaK-, html code.shiki .sZaK-{--shiki-default:#98C379;--shiki-dark:#98C379;--shiki-light:#22863A}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}",{"title":31,"searchDepth":50,"depth":50,"links":10770},[],"tech","sekai.png","2025-08-13","首篇文章，用于验证博客路由与渲染。",{},"/posts/hello-world",{"title":10740,"description":10774},"posts/hello-world","9GvMX-U9cEj9EQsTdhElbncVdjK0e9T2KTNAFIswB5g",1766568023005]