المپیاد کامپیوتر و برنامه‌نویسی

زنگ برنامه‌نویسی

سه شنبه, ۱۵ مرداد ۱۳۹۲، ۰۹:۵۸ ب.ظ

سلام بچه های عزیز


میتونید راه حلاتون رو بگید تا بقیه هم ببینند .

و اما از سوال های این هفته ، سوال ها بسیار خوب هستند بزنید و لذت ببرید .

سوال 1

سوال 2

سوال 3

موفق باشید :)

نظرات  (۱۹)

من هی سوال 1 رو میخوندم ببینم نکنه دارم اشتباه می کنم ولی دیگه مطمئن شدم سر کاریه سوالش. کلا حال داد این موضوع :)
آقا متشکر!فکر کردم دیگه بی خیال شدین اما حالا دیدم نه هنوز به فکر این جا هستین!
sgu باید توی فایل جواب رو بنویسیم؟
این هم کد من:
چطوره؟
خداییش نابود شم تا جواب داد .15 میلی ثانیه بیشتر از حالت عادی بود(515 میلی ثانیه) تا بالاخره با دستکاری تابع اوله؟ (isPrime) موفق شدم.یعنی چک کردن بخش پذیری رو فقط رو اعداد فرد زدم .و هم چنین با جذر گرفتن و چک کردن اعداد کوچکتر از جذر.
ولی سواله خیلی عالی بود.من رو بگو که اون نکته اصلیش رو  بعد 20 دقیقه گذشته از خوندن سوال گرفتم و حالم حسابی گرفته شد تا بیام دوباره بنویسم!
آقا سوال دو رو فکر کنم ایدش رو شما تو یه سوالاتون مطرح کرده بودید .درسته؟

چرا اینجا جواب میدید ؟

آره سوال 2 ، دقیقا سوال 2 همون سوالاتی است که میدادن واسه م3 !

اینم کد من واسه سوال 1 :

http://paste.ubuntu.com/5958828/

نمیدونم باید کد رو میذاشتیم یا نه :-؟

@ mr.ink
bebin ye chizi ke hast ine ke sqrt tabe e gerooniye
bara hamin time barname ro ziad mikone
behtare intori benevisi
i * i <= n
دوستان من کد سوال یک رو زدم سریع تر از 5 صدم ثانیه هست در بدترین حالت
ولی تازه تو sgu ثبت نام کردم و وقتی کد رو سابمیت می کنم ارور میده
حس میکنم مشکل از ورودی و خروجی گرفتنم باشه که از cin و cout استفاده میکنم
آیا از چیز دیگه ای باید استفاده کرد؟
با عرض پوزش خوندم سوالو فهمیدم حواسم به یه تیکه نبود
فقط تعداد رو چاپ میکردم و عددارو چاپ نمیکردم
حالا محاسبه رو حداکثر تا 5 صدم ثانیه انجام میده تا بیاد همرو چاپ کنه زمان میگذره و خیلی زیاد میشه
حتی اومدم جواب رو یکجا تو یه استرینگ ریختم که ببینم تاثیر داره یانه ولی بازم اون سرعت لازم رو نداره و تا چاپ کنه لیمیتیشن تموم میشه
لطفا راهنماییم کنید
ممنون
تو دستگاه خودم حدود 3 صدم ثانیه کم داشت
سابمیت کردم اکسپت شد ;-)
@alireza
کاملا درسته .متشکرم که این نکترو به من گفتی این طوری زمان بهتری میزنه.
@ali
شما هم کدتو اگر دوست داری بزار چون به نظر باید سرعتش خوب باشه.
بفرما اینم کد سوال اول:
http://paste.ubuntu.com/5960207
با یه بهینه سازی تونستم به زمان 75 هزارم ثانیه برای 1 میلیون رو سیستم خودم برسم!
سوال 2 رو چی؟
من تونستم با 15 میلی ثانیه اکسپت بگیرم
با عرض پوزش کد قبلی غلطه!
شب شده خوابم گرفته!!!
این کد اصلاح شده:
http://paste.ubuntu.com/5960283/
برای یک میلیون هم نزدیکه 45 هزارم ثانیه زمان میبره

۱۷ مرداد ۹۲ ، ۱۸:۰۵ علیرضا محمودی
http://paste.ubuntu.com/5962569/
کد واسه سوال 2 :)
کد من واسه سوال 2:

این سوال سوم واقعا راه حلش چیه؟
من هر چی فکر می کنم انگار  باید نظریه اعداد داخلش کرد چون اون همه عدد رو بخوایم تست کنیم هر کدومش یه دستور هم زمان ببره میشه صد سال.
آقا این کد من هست اما احتمالا بعد از صد سال جواب بده.آخر نمایی میشه .
رو کامپیوتر خودم تا 9 رقم رو راحت میره ولی از 10 به بعد دیکه افتضاح میشه.
و در نهایت جواب  سوال 3:
مشکل اصلی من کار با اعدادی تا 100 رقم بود اما تو اون فرومی که رفتم بعضی ها با همین سی پلاس پلاس کد هایی داده بودند که فقط توش نوشته بود 10 به توان 100 .چه طور ممکنه؟
راستی کدم به نظرتون چطوره؟احساس می کنم خیلی خوب با اعداد بزرگ کار نکردم.مجبور شدم تابعی بنویسم که تقسیم عدد حدود 100 رقم به عدد عادی و ضرب عدد 100 رقمی در یک رقم رو انجام بده.

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی