آمادگی برای مرحله دوم المپیاد کامپیوتر
ما هم خوبیم ، شکر!
از عنوان این پست پیداست که در چه مورد می خوام باهاتون صحبت کنم. آفرین ، مرحله 2!
چند نفر توی نظرات پرسیده بودن که چی کار کنیم و چی بخونیم و ...
والا ما خودمونم نمی دونیم قراره چه اتفاقاتی واسه مرحله دو بیفته ، همون طور که مرحله یک به جای 40 تا سوال 25 تا بود. اما خب ، در هر صورت غالب کلی کار ثابته. شما باید بتونید مسئله حل کنید و سر سوالا به قول بچه ها گفتنی IQ بزنین. یه سری میگفتن که تا دیدیم مرحله یک 25 تا سواله یا مثلا 2 ساعته یهو هول شدیم. من به اونا گفتم ، به شما هم میگم. شرایط برای همه یکسانه!! ( البته نه کاملا! ما سر مرحله دومون یه ماشین کنار حوزه بود و از اول تا آخر امتحان دزدگیرش داشت صدا می کرد ، فک کنم کلا صاحب نداشت! )
وقتی وقت امتحان برای تو 2 ساعته ، برای اون یکی هم 2 ساعته. خب دیگه هول شدن واسه چیه؟ تو باید فقط سعی کنی سوالا رو حل کنی با اتکا به هوشت و مطالبی که قبلا خوندی. حالا چه 40 تا چه 25 تا!
اینو گفتم که برای هر چیزی توی مرحله 2 آماده باشین. مهم اینه که طراحان سوال دنبال افراد باهوش و خلاقن و جوری سوال طرح می کنن که این افراد قبول بشن.
حالا بریم سراغ اصل مطلب. کلا شما باید یه سری مطالب رو بلد باشین ، مثله :
1- اصل استقرا و طریقه ی حل مسئله با آن
2- اصل لانه کبوتری
3- اصل ناوردایی
4- اصل اکسترمال
5- حل مسئله به کمک رنگ آمیزی
6- اصول شمارش
7- نظریه گراف
8- آشنایی مقدماتی با الگوریتم
و مهم تر از همهحل مسئله به تعداد زیاد!
خب منابع برای یاد گرفتن چیزایی که گفتم زیاده. ولی بهترین و معروفترین هاش اینا هستن:
1- الفبای المپیاد ریاضی و کامپیوتر - نویسنده: مرتضی محمد آبادی - این کتاب اکثر مطالب بالا رو به طور مختصر داره ولی استقراش خیلی کامله. حتما کل این کتاب رو بخونید.
2- استراتژی های حل مسئله - نویسنده: آرتو انگل - این کتاب موارد 1 تا 6 رو داره . مسئله هاش هم آسون داره هم خیلی سخت. اگر مسئله ای رو بعد از مدت زیاد نتونستین حل کنن ، راه حلش رو بخونین و یاد بگیرین.
3- ترکیبیات - نویسنده: علیرضا علیپور - این هم کتاب خیلی خوبیه و اکثر مطالبی که گفتم توش هست.
4-آشنایی با نظریه گراف - نویسنده: دوگلاس برنت وست- این کتاب که معولا بهش "وست" میگن در مورد گرافه! و خوبه که حداقل 2 فصل اولش رو بخونین و مسئله هاش رو حل کنین. بلد بودن قضایا و تعاریف بدون حل مسئله هیچ کمکی به شما نمی کنه. حتما تمریناش رو حل کنین.
5- مسئله های الگوریتمی - نویسنده: دکتر قدسی و دکتر مهدیان - توی این کتاب مسائل خیلی خوبی هست. البته بخش های اولش سوالای برنامه نویسیه که اونا رو نیاز نیست بخونید. شما سوالای گرافش و مسائل متفرقه اش رو حل کنید. مسائل این کتاب سختن و شما بعد از اینکه به مطالبی که قبلا گفتم مسلط شدید ، می تونید از این کتاب استفاده کنید.
6- معماهای الگوریتمی - کتابیه که توصیه می شه ، مخصوصا امسال که قراره سوالای الگوریتمی بیشتری داشته بشه! خودم نخوندمش و اطلاعی در موردش ندارم.
7- مسائل مرحله دوم سالهای پیش: مرحله دو های قبلی رو از خودتون امتحان بگیرید. بهتره با دوستانتون با هم اینکار رو بکنید. چون اینجوری می تونید جواباتون رو با هم چک کنید. این مهمترین کاریه که باید بکنید.
8 و 9- المپیادهای ریاضی لنینگراد - المپیاد های ریاضی شوروی : باز هم برای حل مسئله بیشتر می تونید از این کتابا استفاده کنید. البته همون طور که از اسمش پیداست ، مسائل المپیاد ریاضی و شما باید ترکیبیات هاش ( مسائل کامپیوتری ) رو حل کنید.
کلاً لذتی که توی حل یه مسئله بعد از چندین ساعت هست ، تو هیچ چیز دیگه ای نیست! سعی کنین المپیاد رو برای لذت بردن و تفریح! بخونید نه واسه ی پیچوندن کنکور. اگه هدفتون پیچوندن کنکور نباشه، حتی اگه مرحله 1 هم قبول نشین ، شکست نخوردین.
10- Introduction to algorithms - A creative approach - این کتاب هم انگلیسیش هست هم فارسیش. ( اسم فارسیش فک کنم "آشنایی با الگوریتم با رویکردی خلاقانه" باشه ) ، این رو فصلهایی که حس می کنین به دردتون می خوره رو بخونین و تمریناش رو حل کنید.
خوبه که یه آشنایی مقدماتی هم با زبان ++C داشته باشین ( متغیر ها ، حلقه ها ، ورودی گرفتن و خروجی چاپ کردن ... )
کتاب آموزش ++C هم دو تا معروف هست : یکیش ترجمه جعفر نژاد قومی یکی هم ترجمه قلزم.
اگه زبانتون خوبه هم که اینترنت بهترین منبعه! مثلا سایتwww.cplusplus.com
بعد از این که یه کمی ++C یاد گرفتین ، توی سایتهای برنامه نویسی که برای این کار هستن عضو بشین و سوال حل کنید و کد بزنید. ( کد زدن ( coding ) اصطلاحیه به معنیه برنامه نویسی ، مثلا کد این سوال رو زدم ، یعنی برنامه ای نوشتم که این سوال رو حل کنه! )
سایتهای خیلی زیادی هستن برای این کار ، ولی 2 تا سایت هست که از همه معروفترن و ملت معمولا توی این دو تا سایت کد می زنن:
1- المپیاد کامپیوتر آمریکا -USACO( معروف به "یوساکو" ( با "ایساکو" فرق داره ها! ) )
2- سایت ای سی ام یک دانشگاه در روسیه! -SGU ( معروف به "اس جی یو"! )
سایت های دیگه هم هست که توی پیوند ها می تونید پیدا کنید.
فعلا همینا کافیه! اگه چیزی از قلم افتاده بود تو نظرات بگین تا پست رو به روز رسانی! کنم.
۱۳۸۸/۱۱/۲۳ · ۱۱:۴۹