کتاب مقدمهای بر مسابقات برنامهنویسی (با عنوان انگلیسی An Introduction to Programming Contests) کتابی به زبان فارسی مناسب برای علاقهمندان به شرکت در مسابقات برنامهنویسی است که توسط احمد یوسفان، محسن بیگلری، فائزه میرزایی و امین بابادی، از شرکتکنندگان در مسابقات برنامهنویسی ACM-ICPC، نوشته شده است.
در پیشگفتار کتاب آمده است: «این کتاب مجموعهای کامل از ابزارهای مورد نیاز برای تبدیل شدن به یک برنامهنویس کارآمد و حرفهای برای حل مسألههای گوناگون الگوریتمی است. همچنین به نوعی کامل کنندهٔ درسهای برنامهنویسی، ساختمان داده و طراحی الگوریتم است و دربردارندهٔ نکتههای ساده و همچنین دشواری است که اغلب در این درسها به آنها کمتر پرداخته میشود ولی برنامهنویس به آنها نیاز دارد. کتاب حاضر خواننده را برای مسابقههای برنامهنویسی مانند ای-سی-ام آماده میسازد. ترتیب فصلهای کتاب به شکلی برگزیده شده است که خواننده همراه با کتاب، سطح خود را بهبود بخشیده و به طور کامل با کتاب همراه شود. در این کتاب، دستهای گسترده از الگوریتمها پیادهسازی و بررسی میشود.»
جزئیات فصلهای هفتگانه کتاب نیز مؤید این پیشگفتار کتاب است:
فصل ۱- مقدمه شامل بخشهای: مسابقات برنامهنویسی، زبان سی++، فرآیند اجرای یک برنامه، محیطهای برنامهنویسی، سلام دنیا! و ساختار کتاب
فصل ۲- کار با ورودی و خروجی شامل بخشهای: ورودی و خروجی استاندارد، کار ساده با پروندههای متنی، کار با رشتهها، میانگیر پرونده، میانگیر رشته، ورودی و خروجی پرونده و جریانهای و خروجی رشتهای
فصل ۳- کتابخانه الگوی استاندارد شامل بخشهای: لیست، پشته، صف، مجموعه، نگاشت، بردار، درخت جستجوی دودویی، درخت اِی-وی-اِل، هرم، صف اولویت، جدول درهمسازی و مجموعههای از هم جدا
فصل ۴- الگوریتمهای کاربردی شامل بخشهای: تحلیل مرتبه الگوریتمها، تکنیکهای جستجو، جستجوی عقبگرد، مرتبسازی، درخت پوشای کمینه، کوتاهترین مسیر در گراف، مسیر اویلری، فروشنده دورهگرد، کدگذاری هافمن، مسأله کولهپشتی، ضرب زنجیرهای ماتریسها، زمانبندی فعالیتها، ضرب اعداد بزرگ، تطبیق الگو و غربال اراتستنس
فصل ۵- مسألههای ریاضی شامل بخشهای: تقاطع پارهخطها، محاسبه زاویههای چندضلعی، مساحت چندضلعی محدب، پوشش محدب، ترکیبیات، نظریه اعداد و محاسبات پیمانهای
فصل ۶- حل مسأله شامل بخشهای: هشتوزیر، سودوکو، رنگآمیزی گراف، مرتبسازی با کمترین تعداد جابجایی، اتصال شهرها با کمترین هزینه، بزرگترین کوتاهترین مسیر، برگزیدن بهترین شهر برای زندگی، سیستم پولی، بالاترین امتیاز و رمزنگاری بهینه
فصل ۷- مهارت در مسابقات شامل بخشهای: نقشهای کلی در مسابقه، استراتژی مدیریت زمان، نکتهها و فوت و فنهای مهم، قاعدههایی مبتنی بر تجربه، الگوهایی از راهحلهای مختلف، دستهبندی مسألهها، مسابقات معروف و سایتهای مرتبط، نرمافزار پی-سی-تو، نمونه سوالات مسابقات و راه حلهای سوالات مسابقات
با هماهنگی میان نویسندگان و ناشر، نسخه الکترونیکی این کتاب در کنار نسخه چاپی به صورت رایگان و با هدف کمک به بهبود سطح برنامهنویسان و آشنایی بهتر با مسابقات برنامهنویسی منتشر شده است که میتوانید از این پیوند دریافت کنید.