سلام!
برای المپیاد کامپیوتر شما باید مباحث زیر رو به ترتیب بلد باشید!
١-ترکیبیات
٢-گراف
٣-الگوریتم
٤-برنامه نویسی
برای هر کدوم هم منابعی هست که در ادمه معرفی می کنم!
...
ترکیبیات
مباحث: شمارش، استقراء، ناوردایی، لانه کبوتری، رنگآمیزی، اکسترمال، بازیها، متفرقه
عنوان فارسی: اصول و فنون ترکیبیات
عنوان انگلیسی: Principles and Techniques in Combinatorics
معروف به ptc
نویسنده: چانگ چین چون ؛ چون چین چانگ خلاصه یه چیزی تو همین مایه ها!!!
توضیح: بخش شمارش، آموزش و تمرینات خوبی داره و بیشتر برای همین بخش استفاده میشه. ممکنه یه کم سختتر از بقیهی کتابها پیدا بشه.
عنوان: ترکیبیات
شهرت: ترکیبیات زرد
نویسنده: علیرضا علیپور
انتشارات: فاطمی
عنوان: جلوههای ترکیبیات
نویسنده: عباس ثروتی
عنوان: «ریاضیات انتخاب» یا «چگونه بدون شمردن بشماریم؟»
نویسنده: ایوان نیون
ترجمه: بتول جذبی و علی عمیدی
انتشارات: نشر دانشگاهی
عنوان فارسی: استراتژیهای حل مسأله
عنوان انگلیسی: Problem Sovling Strategies
شهرت: استراتژی
نویسنده: آرتور انگل (Arthur Engel)
ترجمه ۱: آرش امینی، داود وکیلی، مصطفی هاشمی، محسن جمالی، بهمن اصلاحپذیر (انتشارات پیشروان)
ترجمه ۲: یاسر احمدی فولادی (دانشگاه شریف)
توضیح: این کتاب یه منبع مشترک برای المپیاد کامپیوتر و ریاضی هست. برای همین بعضی سوالها بیشتر به ریاضی مربوط هست (مثلا تا جایی که یادمه سوالهای اکسترمال خیلی ریاضی بود) بخشهای ناوردایی، رنگآمیزی، لانهکبوتری و بازیها خیلی درس/مسائل خوبی دارند. بعضی جاهای بخش «روشهای دیگر حل مسئله» هم خوبه.
نسخهی الکترونیکی: انگلیسی (http://users.allamehelli.ir/~m_kholdi/share/ebook/Arthur%20Engel%20-%20Problem%20Solving%20Strategies.djvu، برای باز کردن این فایل در ویندوز میتوانید از برنامهی DjView استفاده کنید)
گراف
یه زمانی، گراف بخشی از ترکیبیات حساب میشد، اما بعدا خیلی گسترش پیدا کرد، و همونطور که مثلا ترکیبیات از ریاضی جدا شده بود، گراف از ترکیبیات جدا شد. به هر حال، الآن یه بخشی مهمی از المپیاد کامپیوتر به دانش گرافی بر میگرده. خلاصه اینکه مهمه
عنوان فارسی: مقدمه ای بر نظریه گرافها
عنوان انگلیسی:introducing to graph theory
نویسنده :داگلاس بی وست
مترجم:بیژن شمس
انتشارات: ؟؟؟
توضیح: به نظرم بهترین منبع برای گراف همین کتابه. هم درسهاش هم تمرینهاش خیلی خوبه. خیلی از ترجمهاش بدی شنیدم، اگه میتونید انگلیسیش رو بخونید.
نسخه انگلیسی http://users.allamehelli.ir/~m_kholdi/share/ebook/West.pdf
حل مسائل(انگلیسی !) http://users.allamehelli.ir/~m_kholdi/share/ebook/West%20-%202nd%20Edition%20-%20Solution%20Manual.pdf
الگوریتم
تحلیل الگوریتم، ساختمان داده، راهبردهای متفاوت (حریصانه، داینامیک، ...)، الگوریتمهای گراف (DFS، BFS، تور اویلری، کوتاهترین مسیر، MST، MaxFlow، ...)، و یه سری الگوریتمهای پیشرفتهتر (هندسی، نظریه اعداد، ...)
عنوان انگلیسی: Introduction to Algorithms
شهرت: CLRS (مخفف اسم چهار نویسنده)
نویسنده: Cormen, Leiserson, Rivest, Stein
توضیح: این کتاب تقریبا کتاب مرجع الگوریتم (برای المپیادیها) حساب میشه.
نسخه انگلیسی http://users.allamehelli.ir/~m_kholdi/share/ebook/clrs.pdf
عنوان فارسی: طراحی الگوریتم با رویکرد خلاقانه
عنوان انگلیسی: "Intorduction to Algorithms - A Creative Approach"
شهرت: کریتیو (Creative)
نویسنده: یودی منبر (Udi Manber)
ترجمه: احمد صادقی صفت، سید علی حسینی
توضیح: نثر کتاب (بر خلاف CLRS) خیلی خوبه.
نسخهی الکترونیکی: موجود نمی باشد!
مقایسه این دوتا:
درسته که اولی مرجع هست ولی دومی بهتر توضیح داده و بهتره دیگه! (اول دومی رو بخونین اگه وقت اضافه اومد اولی رو هم بخونین!)
مسئله
توی المپیاد کامپیوتر، علاوه بر «قدرت حل مسأله»، «قدرت فکر به مسأله» خیلی مهمه. این یعنی چی؟ یعنی اینکه وقتی یه مسألهای میبینید، یا حل میشه (که در عین حفظ آرامش خوشحال میشید) یا نه. اگر حل نشد، شما باید طبیعتا روی مسأله فکر کنید. حالا خیلی مهمه که شما چقدر (بعد زمانی/جسمی/روحی/....) میتونید به مسأله فکر کنید. فکر کردن هم یعنی امتحان کردن روشهای مختلف برای حمله(!) به مسأله. شاید احساس کرده باشید که بعد از یه مدت فکر کردن به یه مسأله که حل نمیشه، دیگه هیچ ایدهای در مورد مسأله ندارید و فقط دارید راههای تکراری قبلی رو امتحان میکنید، که این خوب نیست و باید همیشه بتونید ایدههای جدیدی داشته باشید. نتیجه اینکه حل کردن مسألههای متنوع خیلی مهمه. شما باید هر چقدر میتونید مسأله حل کنید و با ایدههای جدید و مهمتر از اون، با «خسته نشدن در برابر سوال» آشنا بشید. کتابهایی که تو این لیست هستن، کتابهایی هستن که فقط (و فقط) شامل مسأله هستن. (بعضیهاشون جواب هم دارن)
عنوان: مسئلههای الگوریتمی
نویسنده: محمد قدسی، محمد مهدیان
توضیح: مسئلههای این کتاب توی دو بخش تئوری و برنامهنویسی هستن. کلا مسألههای خوبی داره.
عنوان: معماهای الگوریتمی
نویسنده: محمد قدسی، یاشار گنجعلی
توضیح: شبیه کتاب قبلی، اما مسألههای این کتاب بیشتر جنبهی معما دارن و به صورت محض با علوم کامپیوتر درگیر نمیشن. (من خیلی خوشم نمیاومد ازش)
عنوان: مسألههای المپیاد ریاضی در شوروی
شهرت: شوروی
نویسنده نیکلای یوری سوویچ واسیلیف، آندره آلکساندروویچ یه گوروف
ترجمه: پرویز شهریاری
نشر: توسعه
توضیح: واضحه که سوالهای المپیاد ریاضی هستش، اما سوالهای خیلی خوب برای کامپیوتریها توش وجود داره. مشکل این که بفهمید سوالها به کامپیوتر مربوط هست یا نه رو میتونید به سه روش حل کنید: ۱. خودتون بفهمید ۲. انتهای کتاب لیست موضوعی داره، شمارهی سوالهای موضوعهای دلخواه رو علامت بزنید و بعد همونا رو حل کنید ۳. از یه کسی که قبلا این کارها رو کرده بگیرید
نسخه الکترونیکی ( فارسی) http://users.allamehelli.ir/~m_kholdi/share/ebook/ussr_mathematical_olympiadspersian.pdf
برنامه نویسی
میگردم دنبال یه کتاب جامع معرفی می کنم ولی این سایت خیلی کامله
Www.cplusplus.com
موفق باشید