418531 ภาคต้น 2552/โจทย์ปัญหาอัลกอริทึมเกี่ยวกับกราฟ/เฉลยข้อ 7

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา

เนื้อหา

การ preprocess

ให้ทำ

Error

Too many requests (f061ab2)

(เรียก จาก root)

ขั้นตอนนี้ใช้เวลา

การตอบคำถามว่า เป็นบรรพบุรุษของ หรือไม่

กำหนด vertex และ สอง vertex ใดๆ ในต้นไม้ มาให้ เราสามารถตรวจสอบได้ว่า เป็นบรรพบุรุษของ ได้หรือไม่ดังต่อไปนี้

ตรวจสอบว่า หรือไม่

การตรวจสอบนี้ใช้เวลา

ที่เหลือคือเราต้องพิสูจน์ว่าการทดสอบนี้ถูกต้อง ซึ่งเท่ากับการพิูสูจน์ขอ้ความสองข้อความต่อไปนี้

  1. ถ้า เป็นบรรพบุรุษของ แล้ว
  2. ถ้า ไม่ใช่บรรพบุรุษของ แล้ว ข้อความ "" ไม่เป็นความจริง

ข้อความที่ 1

สมมติว่า เป็นบรรพบุรุษของ แล้ว path จาก ไปยัง จะต้องผ่าน

ฉะนั้นเมื่อทำ จาก เราจะได้ว่า จะถูกสำรวจก่อน ฉะนั้น

Error

Too many requests (f061ab2)

นอกจากนี้ เนื่องจากเราสามารถเดินจาก ไปถึง เราจะได้ว่า จะต้องถูกสำรวจเสร็จก่อนที่

Error

Too many requests (f061ab2)

จะสำรวจ เสร็จ กล่าวคือ

ฉะนั้นเราสรุปได้ว่า

Error

Too many requests (f061ab2)

ข้อความที่ 2

ข้อความที่ 2 สมมูลกับข้อความที่ว่า "ถ้า " แล้ว เป็นบรรพบุรุษของ

สมมติว่า เราได้ว่า เป็นบรรพบุรุษของ ใน DFS tree

แต่เนื่องจากกราฟตั้งต้น เป็นต้่นไม้อยู่แล้ว จึงเป็น DFS tree ด้วย ดังนั้น จึงเป็นบรรพบุรุษของ ใน

รายการเลือกการนำทาง