فهرست مندرجات
طراحی الگوریتمها
تحلیل الگوریتمها
اثبات الگوریتمها با استقرا و ناوردایی
مفهوم مرتبه (Order)
الگوریتمهای پایهای
جستوجوی دودویی
مرتبسازی و مطالب مرتبط
دادهساختارها
دادهساختارهای نگهدارنده (Container)
دادهساختارهای دیگر
الگوهای طراحی الگوریتم
طراحی الگوریتم با روشهای استقرایی
بررسی تمام حالات (Brute-Force)
الگوریتمهای حریصانه
الگوریتمهای بازگشتی
تقسیم و حل
الگوریتمهای پویا
الگوریتمهای پویای نمایی
طراحی الگوریتم با تحلیل سرشکن
مفاهیم پیشرفته
الگوریتمهای گراف
دادهساختارهای گراف
پیمایش گرافها
الگوریتمهای ویژهی درختها
الگوریتمهای ویژهی درختهای ریشهدار
الگوریتمهای ویژهی گرافهای بیجهت
الگوریتمهای ویژهی گرافهای جهتدار
تور اویلری
مسائل کوتاهترین مسیر
Minimum Spanning Tree
تطابق بیشینه
جریان بیشینه و برش کمینه
الگوریتمها وساختارهای رشتهای
String Matching
Suffix Tree و Suffix Array
عبارتهای ریاضی
متفرقه
الگوریتمهای مرتبط با منطق و ساختارهای گسسته
مجموعهی مرتب جزئی
بازیها
نظریه اعداد
الگوریتمهای هندسی
محاسبات پایهای هندسهی دوبعدی
الگوریتمهای Point-in-Polygon
الگوریتمهای پوش محدب
استفاده از تقسیم و حل
استفاده از خط جاروب
مباحث دیگر
تبدیلهای هندسی دوبعدی
هندسهی سهبُعدی
جبر خطی
پیچیدگی محاسبات
مسائل بهینهسازی
الگوریتمهای تقریبی
الگوریتمهای تصادفی
طراحی الگوریتمها
تحلیل الگوریتمها
اثبات الگوریتمها با استقرا و ناوردایی
مفهوم مرتبه (Order)
پیچیدگی زمان اجرا و حافظه
محاسبهی مرتبهی روابط بازگشتی
الگوریتمهای پایهای
جستوجوی دودویی
مرتبسازی و مطالب مرتبط
مرتبسازی خطی
count-sort
bucket-sort
radix-sort
مرتبسازی مبتنی بر مقایسه
bubble-sort
selection-sort
insertion-sort
merge-sort
heap-sort
quick-sort
حد پایین مرتبسازی
Order Statistics
الگوریتم تصادفی شناسایی عنصر $k$ام
الگوریتم شناسایی میانه در $O(n)$
دادهساختارها
دادهساختارهای نگهدارنده (Container)
Array و Sorted-Array
Linked-List
Heap
BST
RBT
Order-Statistic Tree
Hash Table
مقایسهی دادهساختارهای نگهدارنده (خاصیتها: sequential, ordered، عملیاتها: search, random-access, iterate, add, batch-add, delete, findMin)
دادهساختارهای دیگر
صف و پشته
درخت عبارت
درخت Trie
Distjoint Sets
اعداد بزرگ
Segment Tree
Fenwick Tree
ساختارهای Range Minimum Query
Binary Indexed Tree
Interval Tree
Range Tree
Heavy-Light Tree Decomposition
الگوهای طراحی الگوریتم
طراحی الگوریتم با روشهای استقرایی
مسئلهی زیرگراف القایی بیشینه با حداقل درجه $k$
مسئلهی محاسبهی مقدار چندجملهای در $O(n)$
مسئلهی زیررشتهی با بیشترین مجموع
مسئلهی شناسایی celebrity
مسئلهی شناسایی majority
مسئلهی نمایش در مبنای فاکتوریل
بررسی تمام حالات (Brute-Force)
مسائل مرتبط در USACO بهخصوص قسمت 1.2
back-tracking
مسئلهی قراردادن وزیرها در صفحهی شطرنج
تناظر حالتها با اعداد
مسئلهی تبدیل جایگشت به عدد و برعکس
الگوریتمهای حریصانه
فرم کلی اثبات الگوریتمهای حریصانه
مسائل USACO قسمت 1.3
مسئلهی زمانبندی واحدهای کاری با ضربالعجل و جریمه
مسئلهی تطابق و مجموعهمستقل بیشینه در درخت
مسئلهی کد هافمن
مسئلهی ازدواج پایدار
الگوریتمهای بازگشتی
مسئلهی دنبالهی Gray
الگوریتم محاسبهی $x^n$ در $O(\log n)$
مسئلهی حل رابطههای بازگشتی خطی در $O(\log n)$
تقسیم و حل
مسئلهی Sky Line
الگوریتم Karatsuba برای ضرب چندجملهای
الگوریتم Strassen برای ضرب ماتریس
الگوریتم مبتنیبر FFT برای ضرب چندجملهای
الگوریتمهای پویا
الگوریتمهای بازگشتی با روش یادداشتبرداریشده (memoized)
مسئلههای سایت
http://codeforces.com/blog/entry/325
مسئلههای USACO قسمت 2.2 و 2.3
مسئلهی خرد کردن پول
مسئلهی OBST
مسئلهی زمانبندی پردازندههای وزندار
الگوریتمهای پویای نمایی
مسئلهی پوشاندن جدول ۱۰×n با دومینو
طراحی الگوریتم با تحلیل سرشکن
مفاهیم پیشرفته
دوگان و minimax
ماتروید
شناسایی ردهی مسئله از روی LP و دوگان آن
الگوریتمهای گراف
دادهساختارهای گراف
ماتریس مجاورت
لیست مجاورت
پیمایش گرافها
BFS
DFS
شناسایی مؤلفههای همبندی
مسئلهی شناسایی کمر گراف
مسئلهی شناسایی مرکز گراف
مسئلهی شناسایی قطر گراف
الگوریتمهای ویژهی درختها
الگوریتم شناسایی مرکز درخت
الگوریتم شناسایی قطر درخت
افراز درخت به دو درخت تقریبا هماندازه با حذف یال یا رأس
مسئلهی همریختی درختها
الگوریتمهای ویژهی درختهای ریشهدار
پیمایشهای درخت
پیشترتیب
میانترتیب
پسترتیب
ترتیب سطح اول
الگوریتم شناسایی پایینترین جد مشترک
الگوریتمهای ویژهی گرافهای بیجهت
رأسهای برشی
یالهای برشی
مؤلفههای دوهمبند
الگوریتمهای ویژهی گرافهای جهتدار
تست DAG بودن گراف
Topological Sorting
مؤلفههای قویاً همبند
بستار تعدی
تور اویلری
ساخت تور اویلری با استقرا
الگوریتم فلوری برای گرافهای بیجهت
الگوریتم فلوری برای گرافهای جهتدار
ساخت تور اویلری بهکمک DFS
مسئلهی De Bruijn
مسائل کوتاهترین مسیر
معرفی مفاهیم کوتاهترین گشت و دور منفی
کوتاهترین مسیر با یک مبدأ مشخص
Dijkstra
Bellman-Ford
الگوریتم $A^*$
الگوریتم Leviticus (؟؟؟)
کوتاهترین مسیر بین هر جفت رأس
روش ضرب ماتریسی $O(n3logn)$
روش تقسیم و حل (؟؟؟)
Floyd-Warshall
Johnson (برای گرافهای خلوت)
مسائل مرتبط با کوتاهترین مسیر
مسئلهی شناسایی دور منفی
مسئلهی شناسایی دور با کمترین میانگین وزن
مسئلهی حالت خاص LP با نامساویهای دوتایی
Minimum Spanning Tree
Kruskal
Prim
مسئلهی کوتاهترین مسیر با هزینهی گلوگاهی
تطابق بیشینه
تطابق دوبخشی
مسائل متناظر با تطابق دوبخشی (پوشش رأسی، پوشش یالی، مجموعه مستقل)
الگوریتم Kuhn (تطابق دوبخشی با DFS)
الگوریتم Hopcroft-Karp (تطابق دوبخشی با BFS)
تطابق دوبخشی کامل با وزن بیشینه
تطابق بیشینه در گرافهای کلی
الگوریتم شکوفه ادموند
الگوریتم تصادفی با ماتریس Tutte
جریان بیشینه و برش کمینه
الگوریتم Ford-Fulkerson
الگوریتم Edmonds-Karp
الگوریتم Dinics
الگوریتم Push-relabel
الگوریتم Relabel-to-front
مسئلهی مسیرهای یالمجزا
مسئلهی مسیرهای رأسمجزا
مسئلهی Lower-bound Flow
مسئلهی Min-Cost Flow
الگوریتمها وساختارهای رشتهای
روشهای مبتنیبر Hash در کار با رشتهها
String Matching
الگوریتم String Matching بدیهی
الگوریتم Rabin-Karp
الگوریتم KMP
الگوریتم DFA-String-Matching
Suffix Tree و Suffix Array
عبارتهای ریاضی
شیوهی نمایش عبارتهای ریاضی
prefix
infix
postfix
مسئلهی parse کردن عبارتهای ریاضی در $O(n)$
الگوریتم Shunting-yard
متفرقه
مسئلههای فصل ۷ از کتاب «مسئلههای الگوریتمی»
الگوریتمهای مرتبط با منطق و ساختارهای گسسته
Horn-SAT
2SAT
مجموعهی مرتب جزئی
مسئلهی شناسایی بزرگترین زنجیر
مسئلهی شناسایی بزرگترین پادزنجیر
مسئلهی شناسایی کوچکترین افراز به زنجیر
مسئلهی شناسایی کوچکترین افراز به پادزنجیر
بازیها
بازیهای منصفانه (Nimِ معادل و MEX و …)
alpha-beta-pruning
مسئلههای فصل ۴ از کتاب «مسئلههای الگوریتمی»
نظریه اعداد
الگوریتم محاسبهی ب.م.م
الگوریتمهای وارون در $Z_p$
پیدا کردن وارون با extended-gcd
پیدا کردن وارون با رساندن بهتوان $p-2$
باقیماندهی چینی
الگوریتمهای هندسی
مفاهیم اولیه در الگوریتمهای هندسی
اعداد مختلط
ضرب داخلی
ضرب خارجی
محاسبات پایهای هندسهی دوبعدی
مساحت چندضلعی ساده
جهت چندضلعی محدب
جهت چندضلعی ساده
فاصلهی دو نقطه
یکهکردن بردار
فاصلهی علامتدار نقطه از خط (پارهخط)
وضعیت نقطه نسبت به خط (پارهخط)
محاسبهی زاویهی بیعلامت
محاسبهی زاویهی علامتدار
تعیین نقطه
تصویر نقطه روی خط (پارهخط)
نقطهی متقارن یک نقطه نسبت به یک خط
تقاطع دو خط (پارهخط)
تقاطعهای دایره و خط (پارهخط)
تقاطعهای دو دایره
تعیین خط (پارهخط)
خط عبوری از دو نقطه
عمودمنصف دو نقطه
نیمساز زاویه
خط عبوری از یک نقطه، با یک زاویهی مشخص
خط عبوری از یک نقطه، موازی یک خط دیگر
خط عبوری از یک نقطه، عمود بر یک خط دیگر
مماس مشترکهای نقطه و دایره
مماس مشترکهای دو دایره
تعیین دایره
دایرهی عبوری از سه نقطه (دایرهی محیطی مثلث)
دایرههای مماس با سه خط (دایرهی محاطی مثلث)
دایرههای عبوری از دو نقطه و مماس با یک خط
دایرههای عبوری از یک نقطه و مماس با دو خط
دایرههای عبوری از دو نقطه با شعاع مشخص
دایرههای مماس با دو خط با شعاع مشخص
دایرههای عبوری از یک نقطه و مماس با یک خط و با شعاع مشخص
محاسبهی کماندرخور دو نقطه با داشتن زاویه
الگوریتمهای Point-in-Polygon
Ray Casting (تقاطع با نیمخط و قانون زوجوفرد)
Winding Number (محاسبهی عدد چرخش با تجمیع زوایا)
الگوریتمهای پوش محدب
Gift-Wrapping
Graham’s Scan
حد پایین زمان اجرا برای پوش محدب
مسئلهی دورترین دو نقطه
استفاده از تقسیم و حل
مسئلهی نزدیکترین دو نقطه
استفاده از خط جاروب
مسئلهی برخورد پارهخطها
مسئلهی برخورد دایرهها
حل مسئلهی Sky-Line با خط جاروب
مسئلهی اجتماع مستطیلها
مباحث دیگر
مسئلههای کوتاهترین مسیر در فضای هندسی
جمع مینکوفسکی
دادهساختار DCEL
دیاگرام Voronoi
Priority Search Tree و k-d Tree
Fractional Cascading
دادهساختار Point-Location
مسئلههای فصل ۳ از کتاب «مسئلههای الگوریتمی»
تبدیلهای هندسی دوبعدی
انتقال، تقارن و دوران
تبدیل دوگان
تبدیل Hough
انعکاس
هندسهی سهبُعدی
محاسبهی زاویه در فضای سهبعدی
بردار نرمال (عمود بر) صفحه
صفحهی عبوری از سه نقطه
وضعیت نقطه نسبت به صفحه
وضعیت نقطه نسبت به خط
وضعیت خط نسبت به صفحه
وضعیت دو خط نسبت بههم
وضعیت دو صفحه نسبت بههم
تصویر نقطه روی صفحه
تصویر نقطه روی خط
تصویر خط روی صفحه
خط مشترک دو صفحه
نقطهی تقاطع سه صفحه
طول کوتاهترین خم بین دو نقطه روی کره
جبر خطی
شناسایی بزرگترین زیرمجموعهی مستقل خطی
محاسبهی دترمینان
حل دستگاه خطی با روش حذف گاوسی
دستگاه خطی در فضای $Z_p$
محاسبهی معکوس ماتریس
LP و دوگان
Simplex
پیچیدگی محاسبات
مسئلههای تصمیمگیری
تعریف دقیق مرتبهی زمان اجرا و حافظه
الگوریتمهای Pseudo-Polynomial
مفهوم عدم قطعیت
کلاسهای P و NP
مفهوم کاهش (Mapping-Reduction)
کلاسهای C-Hard و C-Complete
مسئلهی Circuite-Evaluation
مسئلهی SAT
مسئلهی CNF-SAT
مسئلهی 3SAT
مسئلهی Integer Programming
مسئلههای معروف NP-Complete (
http://en.wikipedia.org/wiki/Karp%27s_21_NP-complete_problems
)
مسائل بهینهسازی
Branch & Bound
DFS with Iterative Deepening
Hill Climbing
Simulated Annealing
مسائل USACO قسمت 4.1
مسئلهی TSP
الگوریتمهای تقریبی
مسئلهی TSP – الگوریتمهای تقریبی
مسئلهی پوشش رأسی – الگوریتمهای تقریبی
تقریب ناپذیری
الگوریتمهای تصادفی
الگوریتمهای لاسوگاس و مونتکارلو
مسئله استخدام (Hiring Problem)
مسئله پیچ و مهره (؟؟؟)
درخت بازی (؟؟؟)
مسئله کوچکترین دایره محیطی
برنامهریزی خطی
Power of Two Choices