المپیاد کامپیوتر

ترکیبیات,برنامه نویسی,گراف,الگوریتم , و کلا کامپیوتر

المپیاد کامپیوتر

ترکیبیات,برنامه نویسی,گراف,الگوریتم , و کلا کامپیوتر

المپیاد کامپیوتر

۳۹ مطلب توسط «محمدصادق دهقان نیری» ثبت شده است

کتاب Programming Challenges یه کتاب مفید برای برنامه نویسی المپیادی هست.

در هر فصل از این کتاب تکنیک های حل مسئله آموزش داده شده.و در پایان هر فصل تعدادی سوال از سایت uvaگذاشته شده.

امید وارم به دردتون بخوره

دانلود کتاب Programming Challenges

  • محمدصادق دهقان نیری

آپدیت شد.1391/11/30

سلام

همین طور که می دونید دیروز مسابقه برنامه نویسی بیان برگذار شد.

استادان من هم جناب آقای محمد مهدی جهان آرا و امیر گوهرشادی توی این مسابقات شرکت کرده بودند.

برای تشکر از زحماتی که کشیدند و وقتی که برای من گذاشتند این عکس ها رو جدا کردم .

عکس ها در ادامه مطلب

D :D :D:

  • محمدصادق دهقان نیری

متن سوال:

اگر از سمت چپ و بالای یک جدول 2*2 شروع کرده،6 راه برای رسیدن به سمت راست و پایین جدول وجود دارد(فقط حرکت های راست و پایین).

                                        

در یک جدول 20*20 چند راه وجود دارد؟

  • محمدصادق دهقان نیری

امروز براتون کتاب آموزش لینوکس اوبونتو رو گذاشتم برای دیدن به ادامه مطلب بروید.

  • محمدصادق دهقان نیری

برای دیدن انواع مرتب سازی به ادامه مطلب بروید.

  • محمدصادق دهقان نیری

یکی از روش‌های پرکاربرد و مشهور طراحی الگوریتم روش برنامه‌نویسی پویا (یا برنامه‌ریزی پویا - Dynamic Programming) است. این روش همچون روش تقسیم و حل (Divide and Conquer) بر پایه تقسیم مساله بر زیرمساله‌ها کار می‌کند. اما تفاوت‌های چشم‌گیری با آن دارد.

  • محمدصادق دهقان نیری

روش حریصانه (Greedy) یکی از روش‌های مشهور و پرکاربرد طراحی الگوریتم‌ها است که با ساختاری ساده در حل بسیاری از مسائل استفاده می‌شود. این روش اغلب در حل مسائل بهینه‌سازی استفاده شده و در پاره‌ای مواقع جایگزین مناسبی برای روش‌هایی مانند برنامه‌ریزی پویا است. در حالت کلی این روش سرعت و مرتبه اجرایی بهتری نسبت به روش‌های مشابه خود دارد؛ اما متناسب با مساله ممکن است به یک جواب بهینه سراسری ختم نشود.

  • محمدصادق دهقان نیری

متن سوال:

در شبکه 20 × 20 زیر، چهار عدد در امتداد یک خط مورب با رنگ قرمز مشخص شده اند.

08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08
49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00
81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65
52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91
22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80
24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50
32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70
67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21
24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72
21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95
78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92
16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57
86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58
19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40
04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66
88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69
04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36
20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16
20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54
01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48

حاصل ضرب این اعداد برابر است با  26 × 63 × 78 × 14 =1788696

بزرگ ترین حاصل ضرب چهار عدد مجاور(بالا ,پایین,چپ,راست,مورب) در این شبکه چند است؟

  • محمدصادق دهقان نیری

شرح مساله(ویکی پدیا) :

« در نظریه گرافها، یک مرتب سازی موضعی یا ترتیب موضعی یک گراف بدون دور جهت دار، یک ترتیب خطی از همه رئوس آن است به طوری که هر گره قبل از همه گره‌هایی می‌آید که از آن به آنها یال خارج شده است. »

 

  • محمدصادق دهقان نیری

 سورس کد که میذارم براتون در این پست,کد برنامه ای هستش که مجموع اعداد بسیار بسیار بزرگ رو در زمان کمی چاپ میکنه.(مثلا مجموع دو عدد 1000 رقمی یا حتی بیشتر)

  • محمدصادق دهقان نیری