ฉันมีต้นไม้ที่มีจุดยอด N ฉันต้องการออกแบบอัลกอริทึมเพื่อตอบคำถามบางข้อได้อย่างรวดเร็ว เมื่อกำหนดจุดยอด V และจำนวนเต็ม d ฉันต้องการค้นหาจุดยอดที่ระยะ d จาก V หากมีจุดยอดมากกว่าหนึ่งจุดยอดที่ระยะ d ให้เอาท์พุตใดๆ เห็นได้ชัดว่าฉันรู้วิธีการใช้กำลังดุร้าย ฉันยังลองใช้แนวคิดบางอย่างที่คล้ายกับอัลกอริธึมการค้นหา LCA (คำนวณบรรพบุรุษที่ระยะ 1, 2, 4, 8...) แต่ไม่มีผลลัพธ์ใด ๆ
ฉันจะมีคำถามมากมาย เช่น 10^6 ดังนั้นฉันจึงอยากจะตอบในเวลา O(1) หรือ O(log N)
d
ขอบระหว่างจุดนั้นกับราก หรือคุณต้องการให้ระยะทางขั้นต่ำเป็นd
? เช่น. หากมีเส้นทางa->b->c->d->e->f->g
และa->g
แล้วจุดยอดg
จะมีระยะห่าง6
จากจุดยอดa
หรือเป็นระยะทางเพียง1
เท่านั้น (หรืออาจเป็นทั้งสองระยะทาง) - person MT0   schedule 21.01.2016