Saya memiliki pohon dengan N simpul. Saya ingin merancang suatu algoritma untuk menjawab beberapa pertanyaan dengan cepat. Mengingat simpul V dan bilangan bulat d, saya ingin mencari simpul pada jarak d dari V. Jika ada lebih dari satu simpul pada jarak d maka keluaran apa saja. Saya jelas tahu cara melakukan kekerasan. Saya juga mencoba beberapa ide yang mirip dengan algoritma pencarian LCA (menghitung leluhur pada jarak 1, 2, 4, 8...), tetapi tidak ada hasil.
Saya akan memiliki banyak pertanyaan, seperti 10^6, jadi saya ingin menjawabnya dalam waktu O(1) atau O(log N)
d
tepi antara simpul tersebut dan akarnya atau Anda ingin jarak minimumnya adalahd
? Yaitu. Jika terdapat jalura->b->c->d->e->f->g
dana->g
maka apakah simpulg
berjarak6
dari simpula
atau hanya berjarak1
(atau dapatkah kedua jarak tersebut)? - person MT0   schedule 21.01.2016