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

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

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

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

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

۱۱ مطلب با موضوع «برنامه نویسی» ثبت شده است

سلام

بلاخره بعد از تلاش  های شبانه روزی  تونستم کتابخانه set رو تقریبا کامل توضیح بدم و بنویسم.

شما می تونید این آموزش رو از زیر دانلود کنید.

راستی لطفا نظرتونو در باره این آموزش بگید و هر انتقاد یا پیشنهادی دارید بیان کنید. بگید که دوست دارید که در سری بعدی چه چیزی رو آموزش بدیم.

با تشکر از همه کاربران خوب وبلاگ رقابت

دانلود

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

سلام.

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

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

به نام خدا

سلام امروز یکم کد می خونیم.

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

بریم که شروع کنیم...

  • سامان دهستانی

بالاخره بعد از چقدر وقت انتظار کشیدن اولین مسابقه برنامه نویسی رو  توی راهنمایی شهید صدوقی یزد برگذار کردیم.البته هدف این آزمون آشنایی با مسابقه برنامه نویسی و شکل سوالات بود که بچه ها برای سال های بعد آماده باشن.برگذار کننده و طراح سوال هم من و سامان بودیم.به نفر اول مسابقه جایزه ای معادل 40 هزار تومن و نفر دوم معادل 30 هزار تومن و نفر سوم معادل 20 هزار تومن جایزه دادیم.سبک مسابقه مثل پروجکت اویلر بود ولی با این تفاوت که زمان و تعداد جواب های غلط توی امتیاز دهی موثر بود.زبان برنامه نویسی هم آزاد بود که اکثرا با کیو بیسیک می نوشتند البته تک و توکی با سی پلاس پلاس و پی اچ پی می نوشتند.اسم این مسابقه رو گذاشتیم ب ب م (بهترین برنامه نویس مدرسه).البته از من و سامان هم به خاطر اینکه سوالارو طرح کردیم و یرگذار کننده بودیم و پس از حدود 2 ساعت الافی از دبیرستان رفتیم راهنمایی مسابقه برگذار کردیم یه تشکری کردند و یه سکه الیزابت دادن بهمون.

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

برای اینکار شما باید کتابخانه<ctime>رو به برنامه اضافه کنید.

بعد در اولین خط برنامه کد

clock_t start=clock();

را اضافه کنید سپس درآخر برنامه خود قبل از پایان یافتن برنامه کد

 cout<<"time:"<<((double)clock()-start)/CLOCKS_PER_SEC<<endl; 

را اضافه کنید

فرم کلی برنامه:

#include <ctime>

int main(){

clock_t start=clock();

.

.

.

cout<<"time:"<<((double)clock()-start)/CLOCKS_PER_SEC<<endl;

retun0;

}

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

متن سوال:

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

                                        

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

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

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

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

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

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

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

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

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

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

 

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