ای سی ام کار تازه وارد

در این وبلاگ مطالبی در مورد برخی الگوریتم ها و راهنمایی برای حل سوالات ارائه می گردد

ای سی ام کار تازه وارد

در این وبلاگ مطالبی در مورد برخی الگوریتم ها و راهنمایی برای حل سوالات ارائه می گردد

سوال A. Amusing Joke

سوال میگه تو یه شهری زمان کریسمس ، هر دو نفر که همدیگه رو می بینن ، حروف اسمشون رو روی کارت می نویسن و اونها رو تو ورودی خونه آویزون می کنن .

زمانی که می خوابن ، یه نفر میاد و این حروف رو میاره پایین و جا به جا می کنه ( ممکنه یه کاراکتر حذف بشه و چیزه دیگه ای به جاش بیاد ) و دوباره اونها رو آویزون می کنه .

صبح که بیدار میشن می بینن که حروف به هم ریخته !

اون ها می خوان بدونن با حروفی که الان آویزون شده میشه اسمشون رو دوباره درست کنند یا نه ؟


سوال به عنوان ورودی 3 رشته به شما میده ، رشته اول اسم صاحب خونه ، رشته دوم اسم مهمان و رشته سوم ، حروفی هستند که صبح آویزون هستند .

طول رشته ها حداکثر 100 هستند .

به عنوان خروجی اگر میشه با حروف رشته سوم ، رشته اول و دوم رو ساخت ( با هم ) YES و در غیر این صورت NO رو چاپ کنید .


سوال B. Hopscotch

سوال میگه یه نفر خواب می بینه که داره "لی لی" بازی می کنه .

زمان بازی براش این سوال پیش میاد که اگر سنگ رو پرت کنه تو خونه (x , y ) ، شماره خونه ای که سنگ توش افتاده چنده ؟

همه مربع ها طول برابر a دارند .


اگر سنگ تو یه خونه افتاده بود ، شماره اون خونه چنده ؟

اگر سنگ رو مرز یه خونه باشه ، بیرون خونه فرض میشه .


سوال به عنوان ورودی اعداد صحیح x , y , a رو میده .

x| , y <= 1000000| و a < 100 خواهد بود .

به عنوان خروجی اگر سنگ تو یه خونه افتاده ، شماره اون خونه ، در غیر این صورت -1 رو چاپ کنید .


سوال C. Queue

سوال میگه n نفر تو یه بانک تو صف وایسادن و هر کسی می دونه Ai نفر بلندتر از خودش توی صف جلوتر ازش وایسادن .

کارمند بانک میره ناهار بخوره ، برای همین همه افراد از صف خارج میشن .

زمانی که دوباره کارمند شروع به کار می کنه ، افراد می خوان برگردند سر جای خودشون اما همه افراد یادشون رفته که کجا وایساده بودن . فقط مقدار Ai یادشون میاد .


سوال به عنوان ورودی اسم هر فرد و مقدار Ai رو برای اون فرد میده .

باید به هر نفر یه "قد" نسبت بدید که شرایط مساله حفظ بشه .

n < 3000 , Ai < n-1

به هر نفر باید قد Hi رو نسبت بدید .

Hi باید بین 1 تا 1,000,000,000 باشه .

Hi ها می تونن برابر باشن .


به عنوان خروجی n خط شامل اسم و قد اون فرد رو چاپ کنید .

اگر نمیشه این کار رو کرد ، -1 رو چاپ کنید .



سوال : D. Take-off Ramps

یه مسابقه اسکی برگزار شده که مسیر مسابقه یه خط مستقیم و موازی محور x هاست .

طول مسیر L متر و از 0 تا L تو جهت مثبت محور x خواهد بود .

یه نفر تو مسابقه شرکت کرده که می تونه هر متر رو تو 1 ثانیه طی کنه .

در طول مسیر n تا ramp وجود داره .

i امین ramp تو محل x قرار گرفته .

اگر از Pi متر قبل از i امید ramp دور خیز کنیم ، می تونیم به اندازه Di متر رو بپریم ، این پرش Ti ثانیه طول می کشه .

ramp ها فقط تو جهت مثبت محور x کارایی دارن ، یعنی از X-Pi باید شروع به دورخیز کنیم و از محل X تا X+Di رو بپریم .


سوال میگه کمترین زمانی که میشه کل مسیر رو پیمایش کرد .

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

برای هر ramp می دونیم که X+Di از L بیشتر نخواهد شد .


به عنوان ورودی n , L و مشخصات ramp هارو بگیرید .

به عنوان خروجی کمترین زمان برای طی کردن مسیر و همچنین تعداد ramp هایی که استفاده کردید و شماره ramp هارو چاپ کنید .



سوال E. Clearing Up

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

تو شهر n تا کلبه وجود داره ، این 2 نفر تصمیم می گیرن برف یه تعداد از این جاده هارو پاک کنن ، به طوری که از هر کلبه فقط بشه با یه مسیر ساده به هر کلبه دیگه ای رفت .

تو شهر 2 نوع جاده وجود داره ، باریک و پهن .

نفر اول فقط می تونه جاده های پهن رو تمیز کنه و نفر دوم جاده های باریک .

این دو نفر می خوان ببینن که میشه این کار رو کرد ، به طوری که تعداد جاده هایی که هر کسی تمیز می کنه ، برابر باشه .


به عنوان ورودی n و m تعداد کلبه ها و تعداد جاده ها رو میده .

تو m خط بعدی ، مشخصات هر جاده رو میده .

n < 1000 , m < 100,000


به عنوان خروجی اگه میشه این کار رو کرد تعداد جاده ها و همچنین شماره جاده ها رو چاپ کنید ، در غیر این صورت -1 رو چاپ کنید .


حل سوالات

۵ نظر موافقین ۰ مخالفین ۰ ۲۹ اسفند ۹۱ ، ۲۰:۱۷
رضا حسینی آشتیانی

سلام
امسال مسئولیت طرح سوال برای مسابقه داخلی دانشگاه شاهد تهران برای مسابقه منطقه ای به عهده تیم ما بود .
به نظرم بد نرسید تا سوالات و داده های ورودی و خروجی رو در اختیار همه بزارم تا اگر کسی خواست بتونه سوالات رو حل کنه .( البته سطح سوالات بالا نیست )




۱ نظر موافقین ۱ مخالفین ۰ ۲۲ اسفند ۹۱ ، ۰۳:۱۰
رضا حسینی آشتیانی

این وبلاگ قراره شامل چهار بخش زیر باشه .


بخش اول ، راهنمایی های من برای سوالاتی که از سایت های UVa و CodeForces و SGU حل کردم .

چون فکر می کنم داشتن solution مغز شما رو تنبل می کنه و همچنین تا حد زیادی خلاقیت شما رو از بین می بره ، source ها رو نمی زارم . اگه کسی برای سوال خاصی solution من رو بخواد می تونه به من E-mail بزنه ، تا source رو بهش بدم .


بخش دوم ، آموزش یه سری از الگوریتم ها و تکنیک های برنامه نویسی که برای حل سوالات ACM به درد می خورن .


بخش سوم ، درخواست حل سوال یا سوالاتی هست که بهشون فکر کردید ولی ایده ای برای حل اونها ندارید یا سوالاتی که می تونه بار آموزشی داشته باشه رو اینجا مطرح کنید تا بررسی بشه .


بخش چهارم ، درخواست ارائه درسنامه برای موضوعی خاص هستش . اگه کسی مطلب خوبی داره می تونه به من E-mail کنه تا با اسم خودش تو وبلاگ قرار بدم .

ایمیل من


امیدوارم که مطالب این وبلاگ مفید واقع بشه .

۸ نظر موافقین ۳ مخالفین ۱ ۰۱ تیر ۹۱ ، ۲۰:۵۶
رضا حسینی آشتیانی