کتاب گراف west
این کتاب جزو بهترین کتاب های المپیادی هست که گراف رو آموزش می ده.
( نسخه فارسی این کتاب خیلی بد ترجمه شده و به نظر اساتید ما ارزش خوندن نداره !!!)
- ۲ نظر
- ۰۸ اسفند ۹۱ ، ۱۷:۴۰
- ۸۵۲۷ نمایش
این کتاب جزو بهترین کتاب های المپیادی هست که گراف رو آموزش می ده.
( نسخه فارسی این کتاب خیلی بد ترجمه شده و به نظر اساتید ما ارزش خوندن نداره !!!)
کتاب CLRS یکی از بهترین کتاب های الگوریتم هست.
در این کتاب به طور کامل با الگوریتم ها آشناییی پیدا کرده و یاد می گیرید چگونه الگوریتم طراحی کنید.
ترجمه فارسی این کتاب رو پیدا نکردم اگه کسی داشت حتما معرفی کنه.
کتاب Programming Challenges یه کتاب مفید برای برنامه نویسی المپیادی هست.
در هر فصل از این کتاب تکنیک های حل مسئله آموزش داده شده.و در پایان هر فصل تعدادی سوال از سایت uvaگذاشته شده.
امید وارم به دردتون بخوره
به نام خدا
با عرض سلام و خسته نباشید خدمت شما کامپیوتری ها !
برای دانلود سوالات گراف به ادامه مطلب مراجعه نمایید.
« گراف »
گراف مدلی ریاضی برای یک مجموعه گسسته است که اعضای آن به طریقی به هم مرتبط هستند. اعضای این مجموعه میتوانند انسان باشند و ارتباط آنها با هم دست دادن باشد. اعضا میتوانند اتمها در یک مولکول باشند و ارتباط آنها اتصالهای شیمیایی باشد یا اعضا میتوانند قسمتهای مختلف زمین و ارتباط بین آنها پلهایی باشد که آنها را به هم مرتبط میکند (همانندمسأله کونیگسبرگ).
نظریه گراف یکی از موضوعهای مهم در ریاضیات گسسته است که به مطالعهٔ گرافها و مدلبندی مسائل به وسیلهٔ آنها میپردازد. اویلر در سال ۱۷۳۶ با حل مسئله پلهای کونیگسبرگ نظریهٔ گرافها را بنیان گذاشت. اما جیمز جوزف سیلوستر نخستین کسی بود که در سال ۱۸۷۸ از واژهٔ گراف برای نامیدن این مدلهای ریاضی استفاده کرد.
یک گراف از مجموعهای غیر خالی از اشیاء به نام رأس تشکیل شده، که آن را با نشان میدهیم، و مجموعهای شامل یالها، که رأسها را به هم وصل میکنند و با
نمایش میدهیم. یک چنین گرافی را با
نشان میدهیم. اگر یال
دو رأس
و
را به هم وصل کند مینویسیم
.
یکی از روشهای پرکاربرد و مشهور طراحی الگوریتم روش برنامهنویسی پویا (یا برنامهریزی پویا - 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 رقمی یا حتی بیشتر)