Nicholas Petterd
Articles de blog de Nicholas Petterd
การแบ่งArrayเป็นก้อนขนาดใกล้รากที่สองช่วยให้ระบบประมวลผลขอบช่วงแบบตรงและกระโดดข้ามช่วงกลางด้วยข้อมูลสรุป โดยรักษาImplementationที่เรียบง่ายและMemory Layoutต่อเนื่อ
godkingkong สามารถใช้ Heavy-Light Decomposition หรือ HLD ซึ่งแบ่ง Tree ออกเป็นเส้นทาง Heavy หลายเส้นและเปลี่ยน Path Query บน Tree ให้กลายเป็น Query บนช่วงของ Array จำนวนไม่มา
godkingkong สามารถมี Array หรือข้อมูลตามลำดับจากหวยไทย หวยลาว หวยฮานอย คาสิโน สลอต บาคาร่า และแทงบอลที่ต้องรองรับทั้ง Query และ Update แต่ Requirement ยังไม่ซับซ้อนพอที่จะต้องใช้ Tree หลายระดั
เมื่อ Centroid Build, ทางเข้าgodkingkong Distance Storage, Active-State Update, Deletion PolicyและCount Correctionถูกออกแบบเหมาะ Centroid Decompositionสามารถเป็นฐานของTree Queryเชิงระยะที่มีUpdateจำนวนมากและตอบผลในเวลาใกล้ O(log n) ต่อคำสั่
หลักสำคัญคือไม่จำเป็นต้องมีสูตรMergeสองช่วง ขอเพียงแก้Stateเมื่อWindowเปลี่ยนทีละตำแหน่งได
เมื่อWindowขยายครอบตำแหน่งใหม่ให้เพิ่มค่าของสมาชิกนั้นเข้าState เช่นเพิ่มFrequency[valu
การแบ่งTreeด้วยCentroidทำให้ทุกNodeเกี่ยวข้องกับจุดสรุปเพียงระดับLogarithmicและช่วยเปลี่ยนคำถามจากการค้นทั่วTreeให้เหลือการตรวจข้อมูลที่Centroid Ancestorจำนวนไม่มา
เวลาInsertเปรียบเทียบLineใหม่กับLineเดิมที่ซ้าย กลาง ขวาและเก็บLineที่ดีกว่าที่กลางไว
ผลหวยไทยยังต้องมาจากแหล่งข้อมูลที่ยืนยัน ระยะบนTreeไม่มีความเกี่ยวข้องกับการคาดการณ์ผ
การเลือกChildใหญ่สุดทำให้Light Edgeมีคุณสมบัติว่าฝั่งลูกมีSubtreeไม่เกินประมาณครึ่งของParentในเชิงBou
หวยลาว ข้อมูลหลายชั้นสามารถใช้HLDเพื่อถามค่าตามเส้นทางจากหมวดหนึ่งไปอีกหมวดหนึ่
เป้าหมายไม่ใช่ให้ทุกChainยาวที่สุดแบบGlobal แต่ทำให้จำนวนChainที่Pathหนึ่งต้องข้ามมีBoundระดับLogarithm
หวยไทย Historical ArrayสามารถมีQueryจำนวนมากว่าช่วงหนึ่งมีค่าหรือหมวดแตกต่างกันกี่แบ
godkingkong การประมวลผลแต่ละ Query แยกกันด้วยการ Scan ช่วงทั้งหมดอาจมีต้นทุนสูงมากเมื่อมี Query หลายแสนรายกา
เมื่อ Block Size, Summary, Lazy State, Rebuild CostและCache Localityถูกออกแบบเหมาะ Block Decompositionสามารถเป็นทางเลือกที่สมดุลระหว่างการScanตรงกับTree Structureที่ซับซ้อนกว่
หวยลาว Treeหลังบ้านสามารถมีNodeบางตัวActive/Inactiveและต้องถามจากNodeหนึ่งว่าActiveที่ใกล้ที่สุดอยู่ห่างเท่าไ
จากนั้นดูว่Lineที่แพ้ยังสามารถดีกว่าที่ขอบซ้ายหรือขวาหรือไม่ แล้วส่งลงChildด้านนั้