المپدیا

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

ابزار کاربر

ابزار سایت


سوالات المپیاد:دوره ی تابستان:دوره ی ۳۳:عملی نهایی اول:سوال ۲

جنگل تصادفی (Random Jungle)

امیر و مهدی برای گردش به جنگل تصادفی رفته‌اند که درختان این جنگل توجه آنها را جلب می‌کند. آنها برای آشنایی بیشتر با این درختان به اعماق جنگل می‌روند اما بعد از مدتی گم می‌شوند! در عوض آنها به رمز رشد درختان این جنگل پی برده‌اند، الگوریتم ساخت یک درخت $n$ رأسی در جنگل تصادفی به این صورت است:

ابتدا راس $1$ به عنوان ریشه قرار می‌گیرد، سپس در $n - 1$ لحظه بعد، در لحظهٔ $i$ ام، پدر راس $i + 1$ به طور تصادفی با شانس برابر بین رئوس $1$ تا $i$ انتخاب می‌شود و راس $i + 1$ به درخت اضافه می‌شود.

امیر حین تلاش آنها برای خروج از جنگل نقشه‌ای قدیمی پیدا می‌کند که به زبانی باستانی نوشته شده است. امیر شروع به رمزگشایی این زبان می‌کند و می‌فهمد که زیبایی یک درخت از دید یونانیان باستان برابر تعداد دوتایی‌های $(u, v)$ از راس‌‌های درخت است که ارتفاع برابر دارند و $u < v$ است. او بدون دانستن امید ریاضی زیبایی یک درخت $n$ رأسی در جنگل تصادفی نمی‌تواند بخش دوم نقشه را رمزگشایی کند!

تا وقتی که امیر مشغول رمزگشایی دیگر بخش‌های نقشه است، به مهدی کمک کنید جواب مسأله را به پیمانهٔ $M$ بدست آورد و به امیر بدهد تا آنها را از جنگل تصادفی نجات بدهد!

امید ریاضی خواسته شده را می‌توان به صورت $\frac{P}{Q}$ نوشت که $P$ و $Q$ نسبت به هم اولند. در این صورت $P \cdot Q^{-1}$ را به پیمانه‌ی $M$ محاسبه کنید.

ورودی

تنها سطر ورودی شامل عدد طبیعی $n$، تعداد رئوس درخت، و عدد اول $M$ است.

خروجی

در تنها سطر خروجی امید ریاضی تعداد جفت راس‌های همطبقه در یک درخت $n$ رأسی تصادفی را به پیمانه $M$ چاپ کنید.

زیرمسئله‌ها

  • زیرمسئله اول (۵ نمره): $n \leq 10$
  • زیرمسئله دوم (۳۱ نمره): $n \leq 100$
  • زیرمسئله سوم (۱۷ نمره): $n \leq 300$
  • زیرمسئله چهارم (۴۷ نمره): بدون محدودیت اضافی

محدودیت‌ها

  • $1 \leq n \leq 5000$
  • $10^8 \leq M \leq 10^9$
  • $M$ عددی اول است.

ورودی و خروجی نمونه

ورودی نمونه خروجی نمونه
4 100000007
16666669
6 998244353
16637409 
10 349101829
213807563 
100 998244853
439156355 

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

راهنمایی

فرض کنید برای هر $a<b$ مقدار $p[a][b]$ برابر احتمال هم‌ارتفاع بودن $a$ و $b$ باشد.در این صورت طبق خاصیت خطی بودن امید ریاضی تعداد جفت های هم ارتفاع برابر با مجموع تمام $p[a][b]$ ها خواهد بود.

راهنمایی

چگونه می‌توان مجموع احتمال هم ارتفاع بودن هر دو راسی را به طوری که پایین‌ترین جد مشترک $(lca)$ و ارتفاع آن ها از قبل تایین شده باشد را حساب کرد؟

راهنمایی

در راهنمایی ۲ ارتفاع دو راس اهمیتی ندارد. صرفا اختلاف ارتفاع آن‌ها با بلندترین جد مشترکشان مهم است. زیرا اجداد راس $lca$ روی ارتفاع هر دو راس تاثیر مشابهی می گذارد.

راهنمایی

فرض کنید اختلاف ارتفاع دو راس هم ارتفاع $a$ و $b$ با راس $lca$ شان برابر با $h$ باشد. فرض کنید مسیر $lca$ تا $a$ برابر با $p_a[0]<p_a[1]<...<p_a[h]$ و مسیر $lca$ تا راس $b$ برابر با $p_b[0]<p_b[1]<...<p_b[h]$ باشد. $(p_a[0]=p_b[0]=lca, p_a[h]=a, p_b[h]=b)$. احتمال رسیدن به چنین حالتی، برابر با $\frac{1}{p_a[i]-1} \frac{1}{p_b[i]-1}$ به ازای تمام $1 \le i$ و $i \le h$ است.

راهنمایی

فرض کنید $lca$ و $h$ را تایین کرده باشیم. آنگاه اگر به ازای هرحالت انتخاب $2h$ تا از اعداد بزرگتر از $lca$ مجموع مقدار $\prod{\frac{1}{x-1}}$ ها را داشته باشیم و این مقدار را $val[lca][2h]$ قرار دهیم آنگاه مجموع تمام حالات گفته شده در راهنمایی ۴ به ازای تمام $a$ و $b$ ها برابر با ${{2h} \choose {h}} val[lca][2h]$ خواهد بود.

راهنمایی

مقدار $val[i][j]$ ها را به صورت $dp$ با حالت بندی روی حضور فرد $i+1$ ام جزو $j$ نفر انتخابی می‌توان حساب کرد.


ابزار صفحه