ในข้อนี้เราได้ full binary tree มา 2 ต้น ขอเรียกว่า และ
สังเกตว่าการเปรียบเทียบคู่เซตของใบไม้ระหว่างทั้งสองต้นสามารถเปรียบเทียบเพียงเซตใดเซตเดียวก็เพียงพอแล้ว ดังนั้นงานของเรามีแค่เช็คว่า มี กี่คู่ที่เซตใบไม้ที่อยู่ใน subtree ของ ใน เท่ากับเซตใบไม้ที่อยู่ใน subtree ของ ใน
จากนั้นเราจะทำการเปลี่ยนตัวเลขของใบในต้นไม้ดังนี้
ก่อนอื่นเราจะทำ pre-order traversal ลงไปใน จากนั้นเราจะเปลี่ยนตัวเลขของใบไม้ใน เป็นลำดับที่มันโดน visit ใน pre-order traversal นั้น ๆ แล้วเปลี่ยนตัวเลขของใบไม้ใน ให้สอดคล้องกัน
หลังจากทำเช่นนี้แล้วสังเกตว่า เซตของใบไม้ที่อยู่ใน subtree ใด ๆ ใน จะเป็น complete interval เสมอ ดังนั้นเราจึงสามารถแทนเซต ๆ หนึ่งของ ได้ด้วยเพียงแค่คู่อันดับ ดังนั้นเราจะมีคู่อันดับ จำนวน คู่สำหรับ
จากนั้นให้คำนวณค่า 3 ค่าสำหรับทุก ๆ จุดยอดที่ไม่ใช่ใบไม้บน
- โหนดใบไม้ที่มีหมายเลขน้อยที่สุดใน subtree ของ
- โหนดใบไม้ที่มีหมายเลขมากที่สุดใน subtree ของ
- จำนวนใบไม้ใน subtree ของ
จะเห็นได้ว่าให้เราทิ้งจุดยอด ที่ ไปได้เลย เพราะนั่นหมายความว่าเซตของจุดยอดใน subtree นี้ไม่ได้เป็น complete interval
สำหรับจุดยอดที่ นั้น เราก็เพียงแค่ไปเช็คว่ามีคู่อันดับ อยู่ในเซตคู่อันดับที่เราเคยหามาจาก หรือไม่ โดยอาจทำได้หลายวิธี เช่น sort และ binary search หรือใช้ binary search tree
ดังนั้นเราจะได้อัลกอริธึมที่สามารถแก้ปัญหานี้ได้ภายในเวลา