اولین باره که به کاهو میای؟ راهنمای سایت رو حتما بخون!

ورود ثبت‌نام راهنما درباره‌ی کاهو
پرسش‌ها برچسب‌ها کاربر‌ها سوال بپرسید!

آمار پرسش:

  • پرسیده شده: 2015-02-16 02:04:47 -0500
  • مشاهده شده: 716 بار
  • بروز شده: 2015-05-28 15:38:07 -0500

پرسش‌های مشابه:

نظریه اعداد لازم برای المپیاد کامپیوتری ها

محاسبه ${n \choose k}$ به پیمانه M

برنامه نویسی پویا چیست و مسائل مهم آن کدامند؟ (قسمت اول)

پیدا کنید تعداد جفت اعدادی که یکی بیشتر از a و کمتر از b باشد و دیگری کمتر از a باشد و نسبت به هم اول باشند

BWC Round #1 - ک.م.م - ک.م.م اعداد ۱ تا n را بیابید.

وبسایت مسابقه‌های برنامه نویسی

یافتن کوتاه ترین دور در گراف ساده

راهنمایی برای برنامه نویسی

کد مساله هشت وزیر با استفاده از الگوریتم ژنتیک

مجموع ارقام ! 100

نکاتی در مورد نوشتن پاسخ:

در این قسمت می‌تونی به یک پرسش پاسخ بدی. اگه می‌خوای در مورد پرسش بحث و اظهار نظر کنی از قسمت «ثبت نظر» استفاده کن.
پاسخت رو دقیق و کامل بنویس، از عکس استفاده کن و اگه لازمه به منابع (کتاب یا سایت) ارجاع بده.
اگه پرسش یا پاسخ‌ها مفید هستند حتما بهشون رای بده تا پرسش‌ها و پاسخ‌های خوب مشخص بشن.

استفاده از ویرایشگر:

توی قسمت پیش‌نمایش می‌تونی ببینی متنی که نوشتی چجوری روی سایت دیده میشه.
خیلی مهم: برای اینکه به خط بعد بری باید دوتا Enter بزنی.
می‌تونی از تگ‌های معمولی و ساده‌ی html هم استفاده کنی.
با دکمه‌هایی که بالای ویرایش‌گر قرار دارند کلی کار می‌شه کرد. از عکس‌گذاشتن بگیر تا لیست شماره‌دار. حتما امتحان‌شون کن.

علائم ریاضی:

برای نوشتن علائم ریاضی می‌تونی از Mathjax استفاده کنی. راهنمای Mathjax رو از سایت math.stackexchange بخون.
برای نوشتن عبارت ریاضی وسط جمله، اون عبارت رو بین دوتا $ قرار بده.
برای نوشتن عبارت ریاضی تو یه خط جدید اون رو بین دوتا $$ قرار بده.

‌فلسفه ی وجود و یا عدم وجود جفت اعداد مسخره

7

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

اولش به ما عدد $1\le n \le 50000$ رو میده و بعدش $n$ تا سوال از ما میپرسه که باید جواب بدیم, هرکدوم به این شکل:

$a, b, d$ ($۱\le d \le a, b \le 50000$)

به ازای هر پرسشی باید تعداد جفت اعدادی مثل $(x, y)$ رو خروجی بدیم که :
1) $1 \le x \le a$
۲) $1 \le y \le b$
۳) $gcd(x, y) = d$

و $gcd(x, y)$ یعنی بزرگترین مقسوم علیه مشترک اعداد $x$ و $y$.

در صبور نبودن ممد شکی نیست, پس همه ی جواب ها باید زیر 8 ثانیه حاضر بشن.

--منبع : المپیاد لهستان

بروزرسانی: داشتم دینی میخوندم فکر کنم حلش کردم! = )
راه حلش خیلی قشنگه! الان نمیذارم چون میخوام برم ادامه ی دینی رو بخونم(D:) و همچنین میخوام شمام روش فکر کنین!
یسری راهنمایی:
1)آفلاین بزنین! یعنی اول همه ی پرسش ها رو بگیرین بعد به هر ترتیبی که خودتون دوست دارین جوابشون رو پیدا کنین و بعد به ترتیب ورودی جوابشون رو خروجی بدین!
۲)همونجور که @حمیدرضاهدایتی گفت میتونیم فرض کنیم همیشه d=1. حالا فرض کنید جواب پرسش $(a, b)$ بشه $ans(a, b)$. حالا $ans(a+1, b)$ (و همچنین $ans(a, b + ۱)$) رو از روی $ans(a, b)$ پیدا کنین!
۳) بعد از این دو تا کار بالا، یه ایده ی قشنگ میخوره که با استفاده از همین الگوریتم که اینجا گفته شد، مسئله حل میشه!

پی نوشت آخر: $O(\sqrt n(nlogn + mlogm))$ حلش کنین!! ($m$ بزرگترین عدد تو ورودیه.)

برنامه-نویسی نظریه-اعداد ب-م-م جست-و-جو-دودویی برنامه-نویسی-پویا
2015-02-16 02:04:47 -0500
محمد مهدی 1955 ● 5 ● 12 ● 40
پاک‌کردن   ویرایش سوال
نظرات

تعدادشون دیگه نباید خودشون رو چاپ کنیم دیگه؟؟؟

2015-02-16 02:47:04 -0500 حمیدرضاه

hamid reza jan shoma mikhaid 50000 bar in ro chap konid : a = 50000 b =50000 d = 1?

2015-02-16 02:48:37 -0500 آرش خن

:) rast migin

2015-02-16 02:51:59 -0500 حمیدرضاه

Jenabe M.Mahdi aya mishe tedade joft (x,y) hai ke az a va b kamtaran va nesbat be ham avalan ro peida kard? age mishe pas masale hale dge :D

2015-02-16 02:52:02 -0500 آرش خن

khahesh mikonam man ke rast ziad migam aghaye hamidreza :D

2015-02-16 02:52:23 -0500 آرش خن

1 پاسخ

3

چون که:

$$ x < a، y < b، gcd(x,y)=d $$ ما میتونیم به جای پدا کردن اونا اینا رو پیدا کنیم و کللن ضربدر d کنیم

$$ x2 < a/d، y2 < b/d ، gcd(x2,y2)=1 $$

خوب پس تلاش میکنیم که این سوالو حل کنیم که

$$x <= a/d $$ $$y <= b/d $$ $$ gcd ( x , y )=1
$$ پس a رو به a/d تبدیل و b رو به b/d تبدیل کنید

فرض کنید a<=b:

1- اول جفت های $(x,y)$ را پیدا می کنیم که $ x,y <= a $ این تعداد جفت ها که بسیار راحت با استفاده از اینجا میتونید با اردر $ (aloga) $ پیدا کنید خوب اینا رو که پیدا کردید.

2-حالا جفت هایی را پیدا میکنیم که $(x,y)$ را پیدا می کنیم که $ x <= a <=y<=b $ خوب اینا رو هم با چه اردر b میتونید اینجا پیدا کنید :)

تموم شد O_o

الان اردر کلن شد:

$$ O( n * zigma ( a * loga + b ) )= $$ ~500005000064

که خیلی بده

پس الگوریتم برای n<=3000 درسته :|

2015-05-20 14:03:56 -0500
حمیدرضاه 2979 ● 20 ● 26 ● 52
پاک‌کردن   ویرایش پاسخ
نظرات

تلاش خوبی بود! ولی الان برای یدونه پرسش حل کردیش. برا کلی پرسش، بخش اولو میتونی با partial sum رو phi ها، O(1) در بیاری ولی بخش دوم چی؟ الان اردرش زیاده.

2015-05-21 03:47:39 -0500 محمد مهدی

من دیگه خسته شدم :( هنوز من اونقدر خفن نشدم بتونم این سوالا رو حل کنم ایشالله برای بعد :)

2015-05-21 03:55:38 -0500 حمیدرضاه

خسته نباشی! D: راه حل خوبی بود، به ایدشم میخوره به جواب نهایی برسه.

2015-05-21 04:00:41 -0500 محمد مهدی

:) @محمد مهدی اگه میشه خودت جوابشو بزار.

2015-05-21 04:01:14 -0500 روبیک

:) سوال سختیه !! به قول محمد مهدی تلاشت خوب بوود ! من قبلنا خواستم حل نشد !! ادامه بده شاید حل شد !

2015-05-21 04:01:27 -0500 طوفان

پاسخ شما

فقط در صورتی که پاسخی برای این پرسش دارید، آن را اینجا بنویسید و برای بحث کردن از قسمت «ثبت‌ نظر» استفاده کنید. شما می‌توانید قبل از وارد شدن به سایت پاسخ خود را بنویسید. این پاسخ ذخیره می‌شود و زمانی که شما وارد سایت شدید یا ثبت‌نام کردید منتشر می‌شود.

پیش‌نمایش:

کلیه‌ی حقوق این سایت متعلق به کمیته‌ی ملی المپیاد کامپیوتر است.