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

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

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

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

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

سلام

بدون هیچ مقدمه ای میرم سراغ سوالات کانتست .

سوال اول :

سوال می گفت یه رشته عددی بین 3 تا 5 رقم بهتون میدم ، مقلوب ( reverse ) این رشته رو تو ورودی چاپ کنید .

ّبرای حل یه string در نظر گرفتم که با تابع reverse از کتابخونه algorithm از مجموعه STL های سی پلاس پلاس این رشته رو مقلوب کردم و ...


سوال دوم :

این سوال دو رشته به عنوان ورودی می داد که رشته اول "دوری" فرض شده بود ؛ یعنی اینکه بعد از کاراکتر آخر به کاراکتر اول میشه رفت و همین طور از اول به آخر .

سوال می پرسید که آیا رشته دوم یا reverse اون به صورت یه زیر رشته ( SubString ) از رشته اول هست یا نه ؟

برای این کار من رشته اول رو به آخر خودش اضافه می کردم ( با این کار دوری بودن رشته رو مهار می کردم ) ، بعد چک می کردم که رشته اول یا reverse اون تو این رشته هست یا نه .


سوال سوم :

سوال یه آرایه دو بعدی از اعداد می داد که برابر ارتفاع یه سری خونه بودن و سوال تعداد خونه های بد رو می خواست .

منظور از یه خونه بد اینه که نشه از اونجا دریا رو دید یا به عبارت دیگه در تمام جهات شمال ، جنوب ، شرق و غرب حداقل یه خونه وجود داشته باشه که ارتفاعش از این خونه بیشتر باشه .

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

با توجه به اندازه داده های ورودی این روش مشکلی نداره ولی اگر اندازه جدول بزرگتر می بود این روش از نظر زمانی کارایی نداشت .


سوال چهارم :

این سوال دو مثلث می داد و مساحت ناحیه مشترک ( در صورت وجود ) رو می خواست .

به وضوح مجموعه رئوس ناحیه مشترک از یکی از دو مجموعه زیر باید باشن .

الف : راسی از مثلث اول که درون مثلث دوم قرار داره یا برعکس .

ب : نقطه تلاقی پاره خطی از مثلث اول با پاره خطی از مثلث دوم .


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

برای تشخیص مجموعه نقاط "ب" ، برای هر مثلث سه پاره خط می ساختم و نقطه تقاطع ( در صورت وجود ) رو بدست می آوردم .


بعد از این کار convex-hull نقاط بدست اومده رو بدست می آوردم ولی بعد از حل اثبات کردم این کار لازم نیست .


در آخر مساحت چند ضلعی بدست اومده رو از طریق روش مثلث بندی بدست می آوردم .


کد هایی که سر کانتست ارسال کردم رو می تونید از اینجا دانلود کنید .

سوال اول

سوال دوم

سوال دوم - پایتون

سوال سوم

سوال چهارم


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


با آرزوی موفقیت همه در مرحله دوم مسابقه

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