شاززز

شما در حال مشاهده بلاگ قدیمی شاززز هستین! سایت جدید به آدرس shaazzz.ir در دسترسه.
شاززز

اینجا وبسایت آزاد المپیاد کامپیوتره! ;)
واسه ی همه ی سطوح از تازه کارها تا طلای جهانی!

طبقه بندی موضوعی
بایگانی
۰۱
خرداد
به نام اول آموزگار

سلام ملت چطورین؟ خوبید سلامتید؟ و همچنان هم که بنظر میرسه همتون زنده‌اید، خوب دیگه چیکار میشه کرد همیشه زندگی وفق مراد آدم نمیشه...
بخاطر اصرار زیاد شما گفتیم بیایم یه چیزی بنویسیم وگرنه افسار شاززز را بر پشتش مینداختیم و یه یک ماهی میذاشتیم واسه خودش بدوئه. اما خوب این مرام نمیذاره آدم راحت باشه. به هر حال گفتم امروز یکم در مورد این اول‌های بنده‌خدا بنویسیم. اگه تا آخر پیغام موضوع دیگه‌ای هم به ذهنم رسید مینویسم.

از اونجایی که من نمیدونم هر کردوم از اولایی که اینجا نظر میدن، چی و چقدر خوندن برای همین کلا مینویسم برای اینکه المپیاد کامپیوتر خونده باشید چیکار کنید. حالا هر کی هر مقدارش رو خونده بقیش رو بخونه. البته همین‌جا ذکر کنم که فرض بر اینه که یه نفر با هوش خوب بتونه تا دوره‌ی تابستون هم بدونه هیچ خوندنی بیاد. ولی خب یه آمار گیری نشون میده که این حرف حداکثر شامل یکی دو نفر میشه. البته واقعا برای قبول شدن مرحله دوم اصلا لازم نیست همه‌ی این چیز‌هایی که میگم رو بخونید. ولی اگه بخونید میتونید فرض کنید که احتمال قبول شدنتون منفی نیست

تئوری:
1-PTC: فصل اول
2-الفبا: فصل استقرا
3-استراتژی: لانه‌ی کبوتری-ناوردایی-اکسترمال.
4-وست: فصل اول
5-استراتژی: رنگ‌آمیزی- بازی‌ها
6-creative: استقرا
7-وست: فصل 2
8-creative: فصل 3 (تا ص55 هم کافیه)-فصل 4 تا قبل از AVL- فصل 5
9-وست: فصل 3
10-creative: بقیه‌ی 4-فصل 6-فصل 7
11-CLRS:تا قبل از گرافش
12-وست: 4ویه مقداری 5
13-CLRS: گرافش
عملی:
1-کتاب "آموزش زبان برنامه‌نویسی C" نوشته ریچی و کرنیگان، و مثل همیشه ترجمه‌ی قلزم
2-چندتا مسئله‌ی اوایل "مسئله‌های الگوریتمی"در حد 10 تا)
3- کلا واسه‌ی cpp هم کتاب استروس‌تراپ مسلما بهترین کتابه، البته باید حوصله داشته باشید مخصوصا اولاش.
4- باز هم بدیهیه که واسه‌ی STL هیچ چیزی بهتر از stl_doc نیست که لینکش رو گذاشم اون کنار.
5- سایت رابی جونD: رو تموم کنید(منظورم usaco هست)
6- سایت sgu(البته این سایت با من مشکل شخصی داره!)
7- سایت pku(سایت بدی نیست ولی به‌هیچ‌وجه خوب هم نیست)
8- مسائل BOI و CEOI

البته توجه کنید که کتابی مثل جلوه‌های ترکیبیات درسش مهم نیست ولی اگه خیلی پایه‌اید میتونید هر موضوعی که از تو استراتژی میخونید سوال‌هاش رو توی جلوه‌ها هم حل کنید. مثلا بعد از شماره‌ی 10 سوالای تئوریه "مسئله‌های الگوریتمی" خیلی خوبه. یا مثلا کتاب‌هایی مثل "لنین‌گراد" و "شوروی" واسه‌ی قبل از مرحله 2(حدودای عید) خیلی خوبن.
البته کلا توجه دارید که وقتی میگم اینا رو بخونید یعنی مسئله‌هاش رو هم حل کنیدD:

همونجور که گفتم اصلا لازم نیست واسه‌ی مرحله 2 همه‌ی اینا رو خونده باشید(خودم همین حالا هم شک دارم همش رو خونده باشم)من خودم سال دوم که بودیم تا قبل از مرحله 2 فقط تا قسمت 7 خونده بودم. ولی در کل اگه به این ترتیب بخونید میتونید مطمئن باشید که احتمال قبول شدنتون بالای صفره. اگه احیانا اسم کتابی رو کامل بخواید توی پیغام‌های قبلیمون گفتیم، توی آرشیو موضوعی هم هست. غیر از اینها یک سری چیزها مثل مسائل هندسی توی عملی هست، که اینا یک سری نکتن که توی دوره‌ها یهتون یاد خواهند داد.

خوب این از اولا. اگه چیزی رو جا انداخته باشم ویرایش میکنم. واسه‌ی امسالی‌ها هم همونجور که افشین گفت غیر از حدود 10% عملی چهارتا درس تئوری دارید. 1-گراف 2-ترکیبیات 3- الگوریتم و مبانی 4-cpp. که این درس‌ها کاملا بستگی به معلمش داره مخصوصا ترکیبیات. ولی:
برای گراف: احتمالا تا آخر فصل 2 میگن. فصل 3 غیر از قسمت آخرش. و مقادیر متنوعی از 4و5.(البته اینا که گفتم از edition1)
برای ترکیبیات: قراره هیچ حرفی از ترکیبیات نزنیم، فقط اینقدر بگم که احتمال زیاد مقادیر کاملا متنوعی از کتاب "ونلینت" رو بهتون میگن. کلا واسه‌ی ترکیبیات نگران نباشید، هرچی توی دوره بهتون گفتن بخونید کافیه.
برای الگوریتم: بخش orderها از creative و CLRS خوبه و بقیش تمرین. مثلا از "مسئله‌های الگوریتمی"
برای cpp: همون چیزهایی که درس میدن کافیه. خیلی حال دارید قسمت‌های مرتبط توی استروس‌تراپ.

همین دیگه، زیادی مرام گذاشتم از مخم overflow کرد.(البته مطمئن نیستم اصلا مخی هست یا نه) در ضمن خواستم به اون‌هایی که انشاالله میان دوره بگم که به احتمال زیاد در کلاس‌های گراف با پیدایش شاززز آشنا میشید(البته اگه معلم همچنان مورتی باشه)

خب دیگه فعلا خوش باشید و حال کنید با امتحانا(مخصوصا عربی)

یا حق

  • شااززز منگولیا
۲۴
ارديبهشت

سلام خوبین؟

خوب مرحله 2 هم تموم شد رفت!قبل مرحله 2 (و بطّبع کمی بعدش) همونطور که گفته بودیم وبلاگ ما کاملنرنگ و بوی مرحله 2 گرفته بود. مسه شما ها دیگه. ولی خوب الان دیگه خیلی چیزا فرق میکنه

اونایی که اوّلی ان به جز سوال حل کردن، بد نیست که شروع کنن یه کمی الگوریتم یاد بگیرن.مثلن فصله 4 کتاب کریتیو(Creative) خیلی خوبه واسه این کار! از الگوریتم های استقرا ایی خیلی ساده شروعکرده. دوّمی ها هم خوبه حدّه اقل فصل 4 کریتیو رو بخونن!

(از این بگزریم که هر گونه اطَلاعاتی که قراره نیاز داشته باشین،  تو دوره تابستون درس داده میشه) فصل هایه دیگه از کریتیو هم بد نیست، خوبه! به نظره من که تا فصل 7 اشو بخونین...(با اینکه تو دوره اکثرشو درس خواهند داد، ولی خوب این کار 2 تا خوبی داره! یکی اینکهمساله هایه کریتیو مساله هایه خوبی ان و به آدم دید الگوریتمی میدن(و بعضی هاشونم سختن!!!) خوبیه دومش اینه که وقتی تو دوره دارن اینا رو درس میدنشما(ایشالا که همتون قبول شین!) میگیرین راحت سر کلاس میخوابین!)

بگزریم

به جز کریتیو ، بد نیست سوال هایه دوره هایه سال هایه پیش رو گیر بیارین و حلشون کنین دیگه! اوضاع داره قرو قاتی میشه! بزارین دقیق تر به قضیه نگاه کنیمD:

تو دوره یه سری امتحان تئوری برگزار میشه و یه سری امتحان درسی. امتحان های تئوری رو که باید زور بزنین هلشون کنین دیگه (گفتم که سوالهای سالهای پیش رو پیدا کنین حل کنین، کلّن سوال حل کنین دیگه...)

امتحان های درسی اینان:گراف، الگوریتم، ترکیبیات

اینو بگم که امتحان های درسی معمولن ساده ان(معمولن)

برای درس گرافتون میتونین کتاب آشنایی با نظریه گراف(وست) رو بخونین

خوبیه این کتاب مساله هایه جالبشه! حل کردنه مساله هاش باعث میشه دید خوبی پیدا کنین کلّن!(مساله حل کردنتون به دنبالش قوی میشه)

واسه درسه الگوریتم که کریتیو رو گفتم...

ترکیبیات هم درگیرش نشین بهتره ! همون تو دوره میان یه سری شرّو ور درس میدن بهتون (بستگی به معلّمش داره که چی درس بدن) و اصلن کلّن صحبت نمیکنیم اینجا در مورده ترکیبیات! فمیدین؟

اینا که قسمته تئوری قضیه بود، کلّن تو دوره تابستون درصد امتحان هایه تئوری خیلی بیشتر از عملی هست.(پارسال توری 90 درصد بود! و عملی فقط 10 درصد!!!) ظاهرن همیشه قراره اینجوری باشه...

تو دوره خودشون ++C (زبونی که قراره باهاش برنامه بنویسین)یاد میدن. البتّه بد نیست اگه خودتون از قبل بلد باشین و تمرین کرده باشین.بازم میگم : خوب دقت کنین که تو دوره پارسال عملی فقط 10 درصد تأثیر داشت!

برای تمرین کردن عملی هم میتونین برین تو این سایت هایی که ما لینکشو گزاشتیم اون گوشه!بهترینشون واسه شروع به نظره من همون USACO هست!

خوب دیگه، سرم درد گرفت!

خوش باشین.  قبله اینکه برم دوست دارم از یکی از دوستایه عزیزم که الان داره تو دانشگاه تورنتو درس میخونه و 2 تا مدال نقره کشوری داره یه چیزی بگم:

المپیاد فقط یه پوئنه!  واسه اینکه یه سری کار ها رو راحت تر کنه، فقط همین!و هر چیزی که ما فکر میکنیم از المپیاد خوندن به دست میاد، میشه بدونه اینکه هیچ ربطی به قضیه المپیاد پیدا کنه، به دست اورد...

موفق باشین دوستان

یا حق

  • شااززز منگولیا
۱۷
ارديبهشت
۱) اون‌هایی که f_0=0 هست که تابلوئه آینه‌ای هستن. چون اگه f_1=a باشه اونوقت دنبالمون میشه عین فیبوناچی که فقط هر عدد ضریب a گرفته. که میشه اینو با استقرا یا کلی چیز دیگه اثبات کرد.
بقیه‌ی دنباله‌ها رو میشه فرض کرد که f_0 همه بیشتر از صفره, چون اگه اینجوری نباشه کافیه همه‌ی دنباله رو در ۱- ضرب کرد و رابطه‌ی آینه‌ای بودن یا نبودن همچنان برقرار میماند. حالا خود اینها میشن دو دسته:
دسته‌ی اول: اون‌هایی هستن که f_1 کمتر از صفره. برای این‌ها کافیه f_1 و f_-1 رو در نظر بگیرید و به تناقض برسونید.
دسته‌ی دوم: اونهایی که f_1 بزرگتر از صفره. برای این‌ها کافیه اولین i رو در نظر بگیرید که منفی شده. باز دو حالت پیش میاد:
اولین i بعد از ۱ و -۱ باشه: اگه فرمولش رو بنویسید میبینید که مجبور میشه دنباله شامل یکدونه صفر باشه. و ما چند خط بالاتر ثابت کردیم که با شروع از ۰ به یک دنباله‌ی آینه‌ای میرسیم که البته نسبت به جایگاه ۰ آینه‌ای هستن. برای همین دنباله‌ی ما از f_0 نمیتونه آینه‌ای بشه.
اولین i خود ۱ و -۱ باشه: که در این صورت اگه فرمول رو بنویسید می‌رسید به f_1= - f_-1 که نتیچه میده i=2*j و با استقرا ثابت میشه که این هم حالتی از جوابه.

و اینجوری ثابت میشه دنباله‌هایی که یا f_0=0 با f_1=2*f_j هست جواب مسئله است.

۲) این جور سوال‌ها که بر میگردن به روابط بازگشتی بهشون میگن dynamic. مثلا توی این سوال وقتی می‌خوایم c_i,j رو حساب کنیم, باید ببینیم که چطور مسئله‌ی حل از i تا j رو به حل یه تعداد r تا k تبدیل کنیم. البته باید همیشه توجه کنید که توی دور نیفتیم, یعنی از حل i,j دوباره نرسیم به خود i,j. البته در این سوال‌ها یک سری حالت اولیه هم در نظر گرفته میشه که جوابشون بدیهی تلقی میشه, مثلا در این سوال c_i,i صفر در نظر گرفته میشه. در این سوال هم کافیه توجه کنیم که در حالت بهینه برای حل i,j ما آخرین حرکتمان جوش دادن دو تکه میله هست که یکی شامل میله‌های از i تا k هست و اون یکی شامل از k تا j که k میتونه از i+1 تا j-1 باشه. پس c_i,j مساوی خواهد بود با مینیمم
c_i,k + c_k+1,j + w_i,k + w_k+1,j
که در اون k از i+1 تا j-1 هست و w_x,y هم به معنای جمع وزن میله‌های از x تا y هست.
برای حساب کردن c_1,n هم کافیه یه جدولn*n بکشید که در اون درایه‌ی x,y نشون‌دهنده‌ی c_x,y باشه و حالا اول همه‌ی اونهایی رو بدست بیارید که y-x=1 هست. بعد اون‌هایی که y-x=2 هست, همیونجور ادامه بدید تا اون‌هایی که مساوی n هست.

۳) بیاید برای هر شهر یک تابع f در نظر بگیرید که f شهر a میشه اون مجاوریش که اگه جاده‌ی بین a و اون مجاور رو حذف کنیم, زیر کشور اون مجاوره بیشتر از 2n/3 بشه. واضحه که f یه نفر بیشتر از یه شهر نیست. حالا سوال اینه که آیا شهری هست که f نداشته باشه؟ (چون اگه همه‌ی رئوس f داشته باشند که بدیهیه مسئله جواب نداره و اگه یه راس بدون f پیدا بشه, کافیه که اون یالی رو حذف کنیم که زیر کشور تشکیل شده‌ی دارای مجاورش ماکزیمم راس را داشته باشد)
خوب حالا برهان خلف می‌زنیم, اگه همه f داشته باشند, کافیه یه راس a رو در نظر بگیریم. حالا میریم سراغ f_a و بعد سراغ f_f_a و همینطور ادامه میدیم و هر دفعه میریم به f راسی که داخلش هستیم. این مثل حرکت روی جاده‌ها میمونه. ار اونجایی که توی جاده‌هامون دور نداریم(بین هر دو شهر دقیقا یک مسیر وجود داره) و تعداد راس‌ها هم متناهیه, پس یه زمانی از جاده‌ای که اومدیم دوباره برمی‌گردیم. خوب این یعنی هر ور جاده 2n/3 شهر داره که تناقضه


این یه روش استقرا داره که میگه اگه طی مراحلمون به n(طول جایگشت) رسیدیم که در مرحله‌ی بعدی n به اول جایگشت میاد و ازگردونه حذف میشه و بقیه هم طبق استقرا حل میشند. و اگه هم هیچوقت n نیاد که خوب مسلما هیچ‌وقت عددی که در اول جایگشت هست هم استفاده نخواهد شد برای همین هیچ عیبی نداره اگه جای n رو با اون عدده عوض شده فرض کنیم. و حالا هم با استقرا باز به نقره‌ای خواهیم رسید.
این سوال یه روش با حال هم داره که میاد میگه به هر حایگشت یک عدد در مبنای ۲ میدیم. اینجوری که اگر عدد سمت راست ۱ بود, بیت سمت راست رو میذاریم ۱ وگرنه ۰. برای بقیه هم همینطور, اگه نفر i ام از سمت راست جایگشت برابر با i بود, بیت i ام از راست ۱ وگرنه ۰ است. حالا نکته اینجان که با یک عملیات روی جایگشت اگر نفر سمت راست ۱ بوده باشد که عدد ما هیچ تغییری نمی‌کند وگرنه عددمان بزرگ می‌شود(خودتان اثبات کنید) و چون عددمان از ۲ به توان n نمیتواند بیشتر شود لذا زمانی محبور است به جایگشت نقره‌ای برسد.

۵)خب این با قضیه‌ی هال که بدیهیه. بدونه اون هم با استقرا میشه گفت. اون جعبه‌ای که یدونه داره که واضحه باید از اون جعبه همون مهرهه انتخاب بشه, حالا فرض کنید اسم اون جعبه a باشه و مهره‌ی داخل اون b باشه. حالا که ما b رو انتخاب کردیم, باید ببینیم که کدوم جعبه b داشته(اگه هیچ کس دیگه‌ای نباشه که خوب رسیدیم به حالتی که از همه دقیقا ۲ تا داریم و با روشی شبیه به همین حله.) میایم اون جعبه‌ای که b رو داشت در نظر میگیریم و فرض میکنیم که b از توش حذف شده. حالا مثل اینه که رسیده باشیم به حالت فرض استقرا و همینطور ادامه میدیم تا تموم بشه.
  • شااززز منگولیا
۱۴
ارديبهشت
۵) این بصورت استقرایی ثابت میشه. یعنی مسلما فرد ۱ باید دره یک رو باز کنه. بعد نغر ۲ باید کار انجام بده. بعد ۳ باید انحام بده, بعد ۴ نباید انحام بده و همینطور فرض میکنیم که تا نفر k همه بصورت یکتا تعیین میشن. حالا بسته به اینکه در صندوق k باز باشه یا بسته, نفر k هم یکتا تعیین میشه(توجه کنید که غیر از k کس دیگری نمانده که بتونه صندوق k رو تغییر بده)

۶) این روشی که گغته برای یه خونه عددش میشه فلان, مثل اینه که عدد هر خونه بشه جمع همه‌ی اعداد سطرش بعلاوه‌ی جمع همه‌ی اعداد ستونش.(توجه کنید که جمع در Z2 میشه همون xor هست). که البته چون خودش دوبار حساب میشه, خودش تاثیر نداره. حالا فرض کنید به جدول داریم که جمع اعداد ستون i میشه a و جمع اعداد ستون j میشه b. (توجه کنید که a و b یا ۰ یا ۱ هستن) عدد سطر k ام ستون i می شه جمع اعداد سطر k و a. عدد سطر k ام ستون j می شه جمع اعداد سطر k و b. حالا اگر a=b بود این دو عدد مساوی وگرنه مخالف همدیگه می شند. پس اگه یه جدول اصلاحپذیر باشه اعداد ستون i ام یا همه مساوی یا همه مخالف اعداد ستون j ام هستند. (همچنین برای سطرها) حالا میخوایم ثابت کنیم جمع اعداد هر ستون مساویه. فرض کنید ستون i بشه a. اونهایی که مساویه ستونه‌هن که هیچ. اونهایی که مخالفه‌شن جمعشون میشه (n-a) که چون n زوجه (n-a) هم میشه همون a. پس جمع اعداد همه‌ی ستون‌ها یکسانه(و سطرها هم یکسانه). خوب حالا که جمعشون یکسانه برگردیم به ۴-۵ خط بالاتر. نتیجه میگیریم که همه‌ی ستون‌ها با هم مساویند(و همه‌ی سطرها هم). چون همه‌ی ستون‌ها مثل همند اگر خانه‌ی (i,j) یک باشه اونوقت سطر i و در نتیجه همه‌ی سطور ۱ میشوند. پس یا همه‌ی اعداد ۱‍ هستند و یا همه ۰. اگه همه ۰ باشند که خوب مستقیما مرحله‌ی بعدی به خودمون میرسیم. اما اگه همه ۱ باشند مرحله‌ی بعد به همه ۰ میرسیم و هیچوقت دیگه به همه ۱ نمیرسیم. پس جواب سؤال میشه تنها یک جدول و اون هم همه ۰.

۷) این سؤالیه که مسلما چندین راه داره ولی یه راهه خیلی آسون و کوتاهش اینه: بیاین ۲نفر ۲نفر دسته بندیشون کنید(نفر ۱۳۸۵ تنها میمونه). حالا نفر اول هر دسته میاد رنگ کلاه نفر دوم رو مینویسه و نفر دوم هم معکوس رنگ نفر اول رو مینویسه. اینجوری اگه رنگشون برابر بوده, نفر اول وگرنه اگه مخالف باشه نفر دوم درست گفته. اینجوری نزدیک به ۵۰٪ افراد درست خواهند گفت.

۸) از طرز سوال بدیهیه که با خیابان‌های موازی محورها نمیشه و با مورب‌ها میشه.
اینکه چرا موازی‌ها نمیشن: فرض کنید اگه مثلا خونه‌ی شهردار سمت راست یه خیابان عمودی باشه و اول کار به سمت پایین بره (بقیه هم به همین صورته), اونوقت همیشه یا سمت راست خیابان‌های عمودیه یا سمت بالای خیابان‌های افقیه. و برای همین همیشه یا داره به سمت پایین میاد یا به سمت چپ و هرگز به خودش نمیرسه. البته این رو میشه با استقرا روی تعداد چهارراه‌های رفته اثبات کرد.
اینکه جرا مورب‌ها میشه: میشه با ۳ جاده حرکت پیچش به راست رو شبیه‌سازی کرد. یعنی در سمت راست یک جاده حرکت کنی و به سمت راست بپیچی ولی همچنان در سمت راست جاده بمانی. حالا که این حرکت رو داریم خیلی راحت میتونیم دور بزنیم و به خودمون برسیم.
  • شااززز منگولیا
۱۳
ارديبهشت
۱) الف) با خودتون ب) تابلویه که جواب بصورت مجموعی از اعدادمون هستن که هر کی ضریب -۱ یا ۱ داره. البته حتما یه نفر با ضریب مثبت وجود داره(با استقرا تابلوئه). پس جواب بصورت (جمع چند تا) منهای (جمع بقیه) هست. حالا ما جواب مینیمم رو در نظر میگیریم. میایم اول قسمت مثبت رو جمع می‌زنیم و بعد قسمت منفی رو جمع میزنیم و آخر این دو عدد رو از هم کم می‌کنیم.

۲) نقش رو تعریف میکنیم خطی که مینیمم مسیر رو از گوشه‌ی بالا سمت چپ به پایین سمت راست رو طی میکنه و البته از روی محیط قالیها میگذره. حالا فرض استقرا اینه که ما هر نقشی که کمتر از k تا قالی توشه میتونیم درست کنیم. حالا واسه k قالی میایم اون قالی رو در نظر میگیریم که بالا و سمت راستش خالیه ( مثلا میتونید از روی نقش اولین حرکت سمت راستمون رو دنبال کنید و به محض اینکه حرکت سمت پایین کردید این جا همون قالین). خوب حالا این قالیه رو حذف کنید و طبق استقرا بقیه رو بسازید و بعد هم اینو اضافه کنید.

۳) اول همه‌ی لامپ‌ها رو رندوم میبندیم به کلیدها. حالا دو حالت پیش میاد:
الف) یدونه لامپ روشن بشه: که بدیهیه: با ۱۰۰ حرکت خرابها رو درمیاریم و هر کلیدی رو با لامپ سالمه چک میکنیم اگر روشن شد که میفهمیم کلید درسته و لامپه نظیرش خراب بوده. اگر هم روشن نشه فقط میفهمیم که کلید خرابه. از این دومی ۵۰ بار اتفاق میفته که لامپ‌های نظیرشونرو میتونیم با اون کلید درسته چک کنیم و حله.
ب)هیچکی روشن نشه: که خوب ‍پس یار هر کس دقیقا برعکسه خودش بوده. پس ۵۰ تای اول رو در خودشون یکی شیفت میدیم جلو(یعنی ۱ به ۲, ۲ به ۳, ... , تا ۵۰ به ۱). اگه کسی روشن نشد که تابلویه وگرنه یه دونه روشن میشه. حالا بوسیله‌ی این و شبیه به بالا حل میکنیم البته توجه داشته باشید که با تعیین هرکس وضعیت اون یار قبلیش هم معلوم میشه.
اینکه چرا میشه ۲۵۰ تا حداکثر, خودتون چک کنید.

۴) سوال هم ارزه با اینکه بگیم: دو رشته اگر حداکثر در ۲ بیت تفاوت داشته باشند باید کد متفاوتی براشون خرج بشه. که این اگر کدمون حداکثر k باشه غیر ممکن و اگر k+1 باشه حتما ممکنه. که مسئله مورد اول رو می‌خواد. کافیه بیاین یدونه رشته رو با همه‌ی کسانی که باهاش تو یه بیت تفاوت دارند رو در نظر بگیرید. این دو به توان k بعلاوه‌ی ۱ رشته میشه. که چون با k بیت کد حداکثر دو به توان k حالت میشه پوشوند لذا دو تا از این رشته‌ها کد یکسان دارند و نمیتوان بینشان تفاوت گذاشت.(در حقیقت نمی‌فهمیم که کدامیک از این‌ها منظور فرستنده بودند.)

اینها هم تقریبا حل-راهنمایی بودند و مقداریش رو باید خودتون ثابت کنید.
  • شااززز منگولیا
۰۱
ارديبهشت
جواب 1) کافیه ثابت کنید که از هر ستون لازم و کافیه که تنها آخرین دستور sort اون ستون اجرا بشه. لازمش که بدیهیه چون کافیه سطرها همه‌ی اعدادشون مساوی باشند و فقط در همین یه ستون با هم فرق کنند. کافیش هم تقریبا واضحه چون کلا دستوراتی که قبل از دستور sort_i میان، بود و نبودشون فقط در جابجایی افرادی مهم هست که عضو iامشون با هم یکسانه که خوب یه دستور sort_i دیگه، تغییری در اونها ایجاد نمیکنه.

جواب 2) داریم استقرا میزنیم روی n. اگه یکی از بازه‌ها کاملا در یکی دیگه قرار داشته باشه، کافیه اون بزرگه رو حذف کنیم و سپس بنابر استقرا اون k-1 نقطه‌ی مناسب رو انتخاب کنیم. حالا چون یکی از نقاط داخل کوچیکه هست، پس از بزرگه هم یکی انتخاب شده و تموم. حالا فرض کنیم حالتی هست که هیچ بازه‌ای کاملا داخل دیگری نیست. میایم همه نقاط شروع بازه‌ها رو مرتب میکنیم. حالا زودترین شروع رو در نظر بگیرید. بیاید نقطه‌ی انتهای این بازه رو بعنوان یکی از نقاط انتخابیمون در نظر بگیرید. چون همه‌ی بازه‌هایی که بین شروع و پایان این بازه، باز شدن، بعد از پایان این بازه، بسته شده‌اند(وگرنه کاملا داخله بازه‌ی انتخابیه ما میومده)؛ لذا با انتخاب این نقطه‌ی خاص، از همه‌ی بازه‌هایی که قبل از بسته شدن اولین بازه، باز شده‌اند، یک نقطه انتخاب شده. پس حالا همین کار را ادامه میدهیم. یعنی باز اولین بازه‌ای رو در نظر میگیریم که بعد از تمام شدن اولی، شروع شده. و نقطه‌ی انتهایش را بعنوان یکی دیگر از نقاط انتخابی در نظر میگریم. و همینطور ادامه می‌دهیم. واضحه که همه‌ی بازه‌ها حداقل یک نقطه‌یشان انتخاب شده. حالا میمونه ثابت کنم تعداد نقاط حداکثر k-1 هست. این هم واضحه‌ چون بازه‌هایی که ما نقاط انتهایشان رو انتخاب کرده بودیم، کاملا جدا از هم هستند، لذا اگر تعداد این بازه‌ها بیشتر از k-1 باشد، اونوقت توانسته بودیم که k تا بازه در نظر بگیریم که با هم هیچ اشتراکی ندارند و این با فرض مسئله در تناقضه.

جواب 3) یه گراف جهت‌دار وزندار می‌سازیم. اینطوری که به ازای هر حالت از چینش کتاب‌ها(حداکثر میشه دو به توان n در n فاکتوریل) یک راس میذاریم. و از راس a یک یال جهت‌دار به b با وزن i میذاریم اگر بوسیله‌ی swap_to_i بشه از حالت a به b رسید. توجه کنید که این گراف به ازای هر یال از a به b یک یال با همون وزن از b به a داره.(در حقیقت یه جورایی این رو میشه بصورت گراف بدون جهت دیدش ولی برای اثبات راحت‌تر اینجوری در نظر میگیریمش). حالا اعمال ما مثل طی کردن یک گشت توی این گراف میمونه. چون تعداد یال‌ها متناهیه زمانی ما از یک یال مجددا عبور خواهیم کرد(همینجا جهت‌دار بودنش کار رو راحت میکنه). پس یال e اولین یالی هست -مثلا با وزن i- که پس از طی چند عمل دوباره به خودش میرسه. بدیهیه که نه تنها e بلکه همه‌ی یالهای توی گذر بسته‌ی از e به e همینجوری هستن و چون یه یال توی این گذر هست که وزنش یکه(کافیه اینقدر طبق الگوریتم حرکت کنیم تا برسیم به 1 دیگه). فرض کنیم این یال 1 که بوسیله‌ی حرکات الگوریتممون توی یک گذر بستن، از a به b باشه. پس ما از a با شروع از یال 1 و طی چند حرکت میرسیم به خودش. این دقیقن مثل وقتی هست که ما از حالت اولیمون شروع کردیم به حرکت. نکته اینجان که ما اگه از راس فلان طی چند حرکت به خودش برسیم، از هر راس دیگه‌ای هم اون حرکات خاص رو انجام بدیم باز به خوده اون راسه میرسیم. بعبارت واضح‌تر حرکات ما مستقل از وضعیت کتابا هستن. لذا اگه یه راس بتونه با شروع از 1 برسه به خودش(که راس a الآن اینجوریه) راس شروع ما هم باید براش همین اتفاق بیفته.

خوب اینم از حل سوالا. کلی واستون مرام گذاشتما. آخه بجای اینکه برم بازی کنم دارم واسه شما چرت و پرت تایپ میکنم. البته اگه اینجوری که من نوشتم توی امتحان بنویسید 0.0000000001 هم نمیشید. من تقریبا بعنوان یه راهنمایی-حل نوشتمش.

  • شااززز منگولیا
۲۵
فروردين

سلام بچه ها.خوبین که؟

تو این پست یکمی راجه به استقرا حرف میزنم و چند تا مساله استقرا میگم...

همونتور که میدونین استقرا یکی از ابزار هایه کاربردیه مرحله 2 است! تجربه ثابت کرده هر سال تو مرحله 2 دو سه تا سوال استقرا میدن...!خلاصه ستقرا ممکنه خیلی هال به آدم بده دیگه...

بگزریم بریم سره مساله ها (البتّه ممکنه راه حلّی به جز استقرا هم داشته باشن)

1)یه گرافه کامل با ۱+۲*n راس داریم که یال ها شو با 3 رنگه 1 و 2 و 3 رنگ کردیم. ثابت کنین میتونیم یه رنگ و n+1 راس رو انتخاب کنیم به طوری که اگه بقیه راس هایه گراف رو دور بریزیم بتونیم با استفاده از این رنگ از هر راسه این مجموعه  n+1 تایی به هر راسه دیگه اش رفت

2)یه گراف همبند با زوج تا یال داریم ثابت کنین که میتونیم یال هایه این گرافرو به مسیر هایه به طوله 2 افراز کنیم

3) (این مساله سخته!) ثابت کنین مجموعه رءوس هر گراف رو میتونیم به دو تا مجموعه A۱ و A۲ افراز کرد به توری که درجه هر راس در هر یک از زیر گرافهای القایی A۱ و A۲ زوج باشد

4)مساله یه 4 مرحله دوّم دوره یه 13 ام یه راه هلّه خیلی کوتاه استقرایی داره!

5)هر مریخی 100 روزه متوالی عمر میکنه.اگه مریخ کلّن 9734123871 روز عمر کرده باشه و کلّن تو تاریخه مریختویه مرّیخ 12391230151511 ای آدم زندگی کرده باشه ثابت کنین هدّقل100روز هست که تویه اون روزها "فرد" تا مریخی رویه مریخ زندگی کرده باشه

خوب بستونه دیگه . همینم زیادتون بود!خودتون برین استقرا کار کنینD:

ادیو

  • شااززز منگولیا
۲۲
فروردين
به نام اول آموزگار             که اول درسش عشق بود

سلام ملت چطورین، خوبین؟ ای بابا همچنان که همتون زنده‌اید! خوب چه خبرا؟ چه میکنید؟ خوشید؟ سلامتید؟ منم هی، بد نیستم، همچنان غرق الافی!

- متاسفانه - وبلاگمون داره پیش میره به سمت علمی شدن که البته خدارا شکر هنوز با این نویسندگان شازی که داره جای نگرانی وجود نداره، برای همین واسه اینکه لااقل از این افشین کم نیارم گفتم بیام 2 تا سوال بدم، البته اینا مال بعضی از امتحان‌های ceoi بوده که روشون الگوریتم BTM2 اجرا شده. برای همین یه دفعه ممکنه راه حل‌هایی آسون‌تر از اون چیزی که تو ذهنمه داشته باشن و بعبارتی سوال سوت بشه. اما در هر صورت سوال‌های خوبین و جدا اونقدر قشنگ هستند که کاملا پتانسیلشو دارن شبیهشون توی مرحله دوم بیاد. در مورد اینکه حلشون رو بذاریم یا نه هنوز بحثش نشده، ولی احتمالا حلشون رو خواهم گذاشت. در مورد اینکه بچه‌ها حل کنند و واسمون میل بزنن تا ما تصحیحشون کنیم هم هنوز تصمیمی گرفته نشده. ا راستی یادم رفته بود ممکنه بعضی از افراد کوته‌فکر -که امیدوارم ما از این بازدیدکننده‌ها نداشته باشیم- ندونن BTM2 چیه. محض اطلاعشون بگم BTM2 مخفف "بچپونش تو مرحله 2" هست. که به شخصه معتقدم تعداد(شاید اندکی) از سوال‌های مرحله 2 و بسیاری از سوالهای مرحله 3 توسط همین الگوریتم BTM2 ویا BTM2++ = BTM3 ساخته شدن. در هر صورت این هم سوال‌ها:

1) n عدد طبیعی روی یک خط چیده شده‌اند. با نام‌های a1 تا an. حالا ما یک حرکت مجاز داریم و آن اینست که یک i بین 1 تا کمتر از n در نظر بگیریم و ai و a i+1 را حذف کرده به جاش ai - ai+1 رو میذاریم یعنی میشه n-1 عدد. حالا هی این کار رو تکرار میکنیم تا بشه 1 عدد. مثلا یک نمونه برای n=4 اینگونه عمل میکنه:

1 12 4 9          --2-->         1 8 9         --2-->         1 -1         --1-->       2

حالا فرض کنید در حالت خاصی از سوال داشته باشیم ai=2^i یعنی اعداد اولیمون (الزامی برای رعایت این شرط در ادامه‌ی مراحل وجود ندارد) 2 و 4 و 8 و 16 و ... است. سوال اینه که ما در آخر که فقط یک عدد می ماند، چند حالت مختلف برای آن عدد وجود دارد؟(در حالت کلی سوال اینه که حداکثر چند عدد مختلف وجود دارد به ازای هر اعداد ابتدایی)

2) n پله با شماره‌های 1 تا n جلوی دروازه‌ی شهر الموت قرار دارد.(دروازه در پله‌ی n ام است) تعدادی متناهی سرباز روی این پله‌ها ایستاده‌اند(در پله‌ی iام ai سرباز). این سرباز‌ها که مال چنگیزخان هستند، میخوان بریزن و الموت رو تصرف کنند. شهردار الموت که آدم صلح طلبی(بی بخاری) هست، واسه‌ی اینکه کشتار زیادی نشه میاد پیشنهاد یه بازی میده و چنگیزخان هم که میبینه بازی شازی هست، قبول میکنه. بازی اینجوریه که هر مرحله چنگیزخان همه‌ی سربازهاش رو به دو دسته (نه الزاما مساوی و نه الزاما ناتهی) تقسیم میکنه، شهردار یکی از دسته‌ها رو انتخاب میکنه و اون دسته بر میگردن مغلستان واسه دوره‌ی طلا(که درحقیقت دودر میشن)، اما اون دسته‌ی باقیمونده هرکدوم یک پله میان بالا. و بازی همینجور ادامه پیدا میکنه. حالا اگه حداقل یک سرباز برسه به دروازه‌ی الموت(پله‌ی nام) شهردار، الموت رو تسلیم میکنه، اما اگر همه‌ی سربازها برگشتن... خوب معلومه دیگه چنگیزخان از دنیا سوت میشه...

نکته اینجان که شهردار الموت خیلی باهوشه و اگه بتونه چنگیزخان رو شکست بده، شکستش میده. اما از بدشانسی چنگیزخان هم یکی از بروبچ المپیاد کامپیوتری اون زمان رو که دوروبره الموت الاف بوده گرفته و در نتیجه چگیزخان هم بهترین بازیش رو میکنه. و خوب چون میدونیم الموت تصرف شده، حالا سوال اینه که شرط اگر و فقط اگر برای اینکه چنگیزخان برده چیه؟(مسلما بر اساس ai ها)

البته توجه کنید که وقتی اون بنده خدای الاف رو میگیرن به هیچوجه حاضر به همکاری نمیشه(عرق ملی) اما چنگیزخان نامرد با وعده‌ی یه لبتاپ اونو فریب میده و تازه بعد از فتح الموت بهش لبتاپ که نمیده هیچ، اونو میکشه و بعدها وقتی که میخوان چنگیزخان رو بکشن، با لباس اون بیچاره خودش رو میزنه جای رئیس کمیته‌ی کامپیوتر و فرار میکنه.

بطور مثال اگر توی پله‌ی n-1ام 1 نفر و توی پله‌ی n-2ام 2 نفر ایستاده باشن، اونوقت چنگیزخان افراد پله‌ی n-2ام رو میکنه یه دسته و اون یکی سرباز رو هم میکنه یه دسته. حالا شهردار مجبوره اون دسته‌ی نفر توی پله‌ی n-1ام رو حذف کنه و در مرحله‌ی بعدی چنگیزخان 2 نفر در پله‌ی n-1ام خواهد داشت، که با تقسیم اونها به 2 دسته خواهد برد.

 

خوب این هم سوالای من. خداییش قشنگن. راستی چون من از همه کمتر کار گرافیکی بلدم، قرار شده من قالب و این سوسولیها رو جور کنم، گفتم که اگه پیشنهادی چیزی بدید ممنون میشم.

خوب دیگه زیاد از وقت همچون طلایم گرفته شد، کسی کاری چیزی نداره؟ پس فعلا

یا حق

  • شااززز منگولیا
۲۲
فروردين
سلام! خوبین؟ خوب الاهی شکر! الّافی خوش میگزره؟
ما(بهتره بگم من:D) فرضمون اینه که همه اونایی که این وبلاگ رو میخونن حداقل یکمی رو الّافی میکنن تو زندگی
خوب حالا که نزدیکه مرحله دوّمه (به درک) گفتیم بزار این مدّت رو یه سری مساله بگیم ! بهتره. بد نیست که با چند تا مساله یه نه خیلی اسون شروع کنیم!

۱)یه گروه داریم از ۱+ ۲*n نفر. از بین هر n+1 نفر حتماً یه نفر هست که بقیه رو میشناسه. ثابت کنین 1 نفر هست که همه رو میشناسه!

۲)یه جدوله n*n داریم که توش عدد هایه 1 و -1 و 0 رو نوشتیم. به طوری که تویه هر سطری دقیقن یدونه 1 هست و یدونه -1. هر باری میتونی 2 تا سطر یا 2 تا ستون جدول رو بگیری و جایه اون 2 تا رو با هم عوض کنی .ثابت کنین میتونیم به جدولی برسیم که جایه 1 ها و -1 ها نسبت به جدوله قبلی توش عوض شده.

۳)یه ترازوی 2 کفه ای داریم که وزنه اجسامه سمته راستش منهایه وزنه اجسامه سمته چپش رو به ما گزارش میده! 27 تا وزنه به وزنهایه1و 3 و 9 و ... 3 به توانه 26 هم داریم.حداقل بار هایه استفاده از از ترازو برایه اینکه این وزنه ها رو به ترتیبه وزن مرتّب کنیم چند تاست؟

۴)یه جدول 200*200 داریم که خونه هاش با 2 رنگ رنگ شده! سفیدو سیاه! اختلاف خونه هایه سفید با سیاه برابر 404 است!ثابت کنید یه مربع 2*2 هست که تعداده فردی خونه سفید داره!

۵)یه صفحه یه 100*100 داریم که خونه هاش با 4 رنگ رنگ شده .هر سطری و هر ستونی از هر رنگ دقیقن 25 تا داره. ثابت کنین میتونیم 2 تا سطر و 2 تا ستون رو انتخاب کنیم به طوری که 4 تا خونه یه محل برخوردشون از 4 رنگه مختلف باشه!

۶)یه گراف ساده داریم که درجه یه هر راسیش حداقل 3 است ثابت کنین که یه دور تویه گراف وجود داره به توری که طوله دور مضربه 3 نباشه

یه مسله یه باحال( مرحله دوّمی نیست ولی من کلّن حال میکنم با مساله یه با حال چه مرحله دوّمی چه غیره مرحله دوّمی):
ثابت کنین بازه (۱و ۰) با R متناظر است!( به نظره من که اگه حلّشو تا حالا نشنیدین حتماً بشینین حلّش کنین!
خوب دیگه بستونه. دستم درد نکنه!:Dخوش باشین
فعلاً خدا خافظ
  • شااززز منگولیا
۲۱
فروردين

به نام خدا

سلام

خوبین؟ خوب به من چه

آقا ما با برو بچز (n تا از طلا هایه المپیاده کامپیوتره ساله 84 به بعد (n عضوه R)) بیکار بودیم گفتیم

یه وبلاگ بزنیم! ایشالا که مفید باشه!

قرار نیست این وبلاگ فقط مربوت به مرحله اوّل .دوم یا سوّمه المپیاد باشه

حتّا ممکنه زمانی مطالبه کامپیوتری یه غیرالمپیادی هم توش گفته بشه

ولی خوب بنا به فراخور زمان و مکان تغییر میکنه!

البتّه الان که نزدیکه مرحله دوّمه بیشتر سعی میکنیم که مطالب به درده مرحله دوّم بخوره!

و امّا شاززز؟ چرا اصلن شاززز؟ اسن یعنی چی؟اصلن شما چرا میخاین بدونین شاززز یعنی چی!

 مثلن مگه شما میدونین که هرم خؤو پوس چیه؟ میدونین الفاقنطورس اسم کدوم ستاره است؟

(تازه این اسم ها همشون وجوده خارجی دارن!!! )

نسبیته انیشتین فقط همین قدر در مورده شاززز به ما اطلاعات میده که :

شاززز شدیدن با مفاهیمی چون : گراف. وست. گذر. باندی و مخسوسن مورتی رابطه داره ! و کاملن مبرهن شده که نسبیت قدرته توجیهه شاززز رو نداره!یه ایده یه کاملن جدید نیازهاسن بیخیال! درگیر نشین!

اینم از پست اوّلمون

راستی! سال نو مبارک!

فعلا خدا نگهدار

 (راستی شما می دونین تو فنت فارسی چه جوری میشه ویرگول گذاشت؟)

  • شااززز منگولیا