نظریه گرافها برای المپیاد کامپیوتر
تعاریف اولیه
مقدمات و مدل سازی با گراف
انواع گراف
پیاده سازی گراف
گشت، گذر، مسیر، اکسترمال
زیرگراف ها
همبندی، یال برشی و راس برشی
گراف دو بخشی
درخت ها
خاصیت های مقدماتی
فاصله در درخت و گراف
شمردن تعداد درخت ها
DFS
BFS
الگوریتم پیدا کردن قطر درخت
DFS Start/Finish Time
الگوریتم های راس و یال برشی
کارگاه پرورش ایده
گراف جهتدار
تعاریف
تورنومنت
گراف جهتدار بدون دور
مولفههای قویا همبند
تشخیص دور داشتن گراف جهت دار
بازیها و گراف جهتدار
گراف تابعی و گرافجایگشت
تکنیک های اثبات مسائل گراف
انتخاب های اکسترمالی
منقبض کردن
گراف و جادو
تور اویلری و دور همیلتونی
معرفی
تور اویلری در گراف جهت دار و بی جهت
De Bruijn sequence
قضیه های وجودی دور همیلتونی
الگوریتم های نمایی پیدا کردن دور و مسیر همیلتونی
الگوریتم های کوتاه ترین مسیر
بلمن فورد
دکسترا
فلوید وارشال
ماتریس ها
ماتریس و عملیات های روی آن
دترمینان ماتریس ها
ماتریس وقوع
ماتریس مجاورت
تعداد گشت ها به طول n
به دست آوردن توابع بازگشتی به کمک گراف و ماتریس
داده ساختار های درختی
درخت دودویی (Binary Tree)
درخت جست و جوی دودویی (BST یا Binary Search Tree)
Heap
DSU
Segment Tree
Trie
مسائل np و np کامل
تعریف np و np کامل
اثبات np کامل بودن مساله sat
مسائل np کامل گراف
Lca
شرح مساله
راه حل O(n+q*lg(n)) به کمک جداسازی سبک-سنگین
الگوریتم برونخط تارجان
ارتباط LCA و RMQ
راه خطی برای LCA
درخت مجازی
الگوریتم های پیشرفته درخت
درخت پوشای کمینه
گونی
سنتروید
هافمن کدینگ
هش درخت
تجزیه سبک سنگین(HLD)
همبندی
برش ها و همبندی
گراف k همبند
برش کمینه و جریان بیشینه
تطابق
آشنایی
تطابق در گراف دوبخشی
قضایا ی مینماکس
کاربرد ها
جریان بیشینه و تطابق
Poset
تطابق در گراف های عام
مباحث ویژه
گراف مسطح
دنباله درجه ای
رنگ آمیزی
یک ریختی
Random Walk
اعداد رمزی
مجموعه مستقل و خوشه
2-SAT
چند ماتریس خاص
ضمیمه
چگونه از این کتاب استفاده کنیم؟
آشنایی با الگوریتم ها و پیچیدگی
برگه تقلب (Cheat sheet)
فهرست
درخت ها
سوالات
سورس
درخت ها
¶
خاصیت های مقدماتی
تعاریف مربوط به این بخش
قضایا و لم های مورد استفاده در این بخش
لم 2.1.1
قضیه 2.1.2
قضیه 2.1.3
قضیه 2.1.4
قضیه 2.1.5
قضیه 2.1.6
ریشه دار کردن درخت
فاصله در درخت و گراف
فاصله چیست؟
قطر
خروج از مرکز
قضیه 2.2.1
شعاع و مرکز
قضیه 2.2.2
سنتروید
قضیه 2.2.3
مجموع فاصله ها
کمینه کردن چگالی گراف
بیشینه کردن چگالی گراف
درخت پشتیبانی
افراز درخت به مسیر ها
پوشاندن یال های درخت با مسیر ها
درخت چپانی
شمردن تعداد درخت ها
شمردن با دنباله درجه ای
راهنمایی
حل
کد پروفر
راهنمایی
حل
تناظر به گراف تابعی
راهنمایی
حل
شمردن انشعاب ها
راهنمایی
حل
DFS
اولین مسئله
مولفه های همبندی
درخت dfs
مسیر ماکسیمال و dfs
مسیر به طول
\(\delta\)
مسیر به طول
\(\frac m n\)
برگ ها و ارتفاع، مجموعه مستقل و طولانی ترین مسیر!
راس نابرشی
پیمایش درخت
BFS
الگوریتم bfs
درخت bfs
قضیه
کد bfs
نتیجه گیری
الگوریتم پیدا کردن قطر درخت
استفاده از dp
dfs up/down
یک الگوریتم ساده تر
DFS Start/Finish Time
چک کردن جد و نواده بودن در زمان اجرای خطی
حل
پیدا کردن kامین پدر
حل
Blood Cousins
حل
دوهمبند کردن با مینیمم تعداد مسیر
حل
الگوریتم های راس و یال برشی
پیدا کردن یال برشی
پیدا کردن راس برشی
کارگاه پرورش ایده
مربع پاک کن
حل
عدد گذاری روی یال
حل
برگ برگ برگ
حل
نکته
جادوی bfs
حل
قبلی
بعدی