اختلاس


  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۵۱۲ مگابایت
  • آزمون عملی دوم فاینال سی و سومین دوره المپیاد کامپیوتر ایران

مهدی برای پر کردن اوقات فراغت تابستانی خود در دوره چگونه مختلس باشیم شرکت کرده است. اکنون پس از گذشت حدود دو ماه دوره به پایان رسیده و زمان آزمون فرا رسیده! استاد این دوره، آقا محمودرضا که به واسطهٔ رابطهٔ فامیلی که با مهدی دارد در او استعداد شایانی می‌دید برای او آزمون متفاوت و سختی در نظر گرفته است. مهدی برای گرفتن مدرک این دوره می‌بایست تمامی بودجهٔ کمیته را بالا بکشد! کمیته که بودجهٔ بسیار زیادی دارد برای امنیت هر چه تمام‌تر، بودجهٔ خود را در گاوصندوق‌هایی در خزانه نگهداری می‌کند.

خزانهٔ کمیته از nn اتاق تشکیل شده که میان بعضی از آن‌ها یک مسیر مستقیم وجود دارد. گراف اتاق‌ها به مانند یک درخت است. در kk اتاق از این nn اتاق یک نگهبان مستقر شده و گوش به زنگ خطر می‌باشد. در هر کدام از اتاق‌های دیگر یک گاوصندوق وجود دارد که بعضی خالی و بعضی پر پول است. مهدی به اتاقی خوب می‌گوید اگر دارای گاوصندوق باشد و گاوصندوق آن پر پول باشد.کمیته برای بالا بردن امنیت خزانه سیاست عجیبی در پیش گرفته؛ کمیته تنها در اتاق‌هایی پول قرار می‌دهد که در مسیر بین دو نگهبان آمده باشد. به بیانی دیگر هر اتاق خوب است اگر و تنها اگر داری نگهبان نباشد و در میانهٔ مسیر بین دو نگهبان باشد.

اما مهدی که نمی‌خواهد دزدی کند! یعنی نیازی نیست که نگران نگهبان‌ها باشد؛ او صرفا می‌خواهد مانند تمامی هم‌صنفان شریف خود تنها کمی اختلاس کند و برای این کار نیازمند دست و پا کردن مسئولیتی برای خود در خزانه است. به همین سبب به عمو رو می زند تا به او کمک کند. عمو که در ابتدا راضی نمی شد پس از تلاش‌های شبانه روزی مهدی پذیرفت که به او کمک کند. اما به یک شرط! عمو که عاشق المپیاد بود سوالی برای مهدی طراحی کرد و به او گفت اگر این سوال را حل کنی به تو کمک خواهم کرد.

سوال عمو به این شرح است:

«مجموعهٔ خوب را معادل با مجموعهٔ همهٔ اتاق‌های خوب تعریف می‌کنیم؛ یعنی مجموعه‌‌ٔ خوب زیرمجموعه ای از کل اتاق‌هاست که شامل همهٔ اتاق‌های خوب می‌شود. به ازای تمامی (nk){n} \choose {k} حالت تعیین اتاق‌های دارای نگهبان چند مجموعهٔ خوب متفاوت داریم؟»

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

بخاطر اینکه عمو قلب بسیار مهربانی دارد کافی است باقی‌ماندهٔ جواب را به پیمانهٔ 109+710 ^ 9 + 7 خروجی دهید.

ورودی🔗

سطر اول ورودی، شامل دو عدد طبیعی، nn تعداد اتاق‌ها و kk تعداد نگهبان‌ها است. 1kn60001 \leq k \leq n \leq 6000

در هر یک از n1n-1 سطر بعدی دو عدد uu و vv آمده است که نشان دهندۀ مسیری مستقیم بین دو اتاق uu و vv است.

1u,vn1 \leq u , v \leq n

خروجی🔗

در تنها سطر خروجی جواب مسئله را به پیمانه 109+710 ^ 9 + 7 خروجی دهید.

زیرمسئله‌ها🔗

زیرمسئله نمره محدودیت
۱ ۹ 1n201 \leq n \leq 20
۲ ۱۱ درخت ورودی مسیر است
۳ ۳۷ 1n3001 \leq n \leq 300
۴ ۴۳ بدون محدودیت اضافی

مثال‌ها🔗

ورودی نمونه ۱🔗

5 1
1 2
2 4
3 5
3 2
Plain text

خروجی نمونه ۱🔗

1
Plain text

ورودی نمونه ۲🔗

7 3
1 4
4 5
5 6
5 7
7 3
7 2
Plain text

خروجی نمونه ۲🔗

8
Plain text

آقای دنباله‌نژاد


  • محدودیت زمان: ۳ ثانیه
  • محدودیت حافظه: ۵۱۲ مگابایت
  • آزمون عملی دوم فاینال سی و سومین دوره المپیاد کامپیوتر ایران

آقای دنباله‌نژاد که کل عمرش را صرف تحلیل دنباله‌ها کرده، باور دارد می‌توان با استفاده از دنباله‌ها وقوع حوادث ناگوار را پیشبینی کرد. برای این کار آقای دنباله‌نژاد هر جفت از اعداد دنباله را تحلیل می‌کند و سپس میزان نحسی دنباله را محاسبه می‌کند.

آقای دنباله‌نژاد از نابجایی و همچنین از عدد kk متنفر است. به همین دلیل به زوج ii‌ و jj که i<ji<j یک جفت شوم می‌گوید اگر ai>aja_i > a_j برقرار باشد. به آن بدشگون می‌گوید اگر aiaj>ka_i \oplus a_j > k باشد (نماد \oplus نشان‌دهندهٔ ‌xor است). جفت‌های شوم یا بدشگون می‌توانند نحسی به همراه بیاورند اما اگر یک جفت همزمان هم شوم و هم بدشگون باشد، این دو نحسی یکدیگر را خنثی می‌کنند. بدین ترتیب یک جفت نحس است اگر و تنها اگر دقیقا یکی از دو شرط شومی یا بدشگونی را داشته باشد.

آقای دنباله‌نژاد نحسی دنباله را برابر تعداد جفت‌های نحس تعریف می‌کند و برای پیشگویی نیاز به دانستن نحسی دنباله دارد. اما آقای دنباله‌نژاد که دیگر پیر و فرتوت شده است نمی‌تواند به راحتی نحسی دنباله را محاسبه کند و به همین سبب از شما خواسته تا به او در پیشبینی کردن اتفاقات بد کمک کنید.

ورودی🔗

سطر اول ورودی، شامل دو عدد طبیعی nn طول دنباله و kk است. 1n106,0k<2301 \leq n \leq 10^6, \quad 0 \leq k < 2 ^ {30}

در سطر بعدی، nn عدد می‌آید که عدد iiم نشان دهندۀ aia_i است. 1ai<2301 \leq a_i < 2^{30}

خروجی🔗

در تنها سطر خروجی میزان نحسی دنباله را خروجی دهید.

زیرمسئله‌ها🔗

زیرمسئله نمره محدودیت
۱ ۳ 1n70001 \leq n \leq 7000
۲ ۱۳ 0ai,k<640 \leq a_i,k < 64
۳ ۴۰ 1n5×1041 \leq n \leq 5\times 10^4
۴ ۴۴ بدون محدودیت اضافی

مثال‌ها🔗

ورودی نمونه ۱🔗

4 4
5 3 4 1
Plain text

خروجی نمونه ۱🔗

4
Plain text

ورودی نمونه ۲🔗

9 5
1 2 3 4 5 6 7 8 9
Plain text

خروجی نمونه ۲🔗

20
Plain text

زندان


  • محدودیت زمان: ۲ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت
  • آزمون عملی دوم فاینال سی و سومین دوره المپیاد کامپیوتر ایران

در پی فرارهای مالیاتی، nn نفر به ترتیب به زندان می‌روند که زور نفر iiم برابر aia_i است.

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

نگهبان زندان که زیاد شدن زور زندانی‌ها برایش نگران کننده شده است‌ (زیرا ممکن است شورش رخ دهد) از شما می‌خواهد که تعداد دفعات قوی‌تر شدن زندانی‌ها در تمام ترتیب‌های ممکن وارد شدن زندانی‌ها را به پیمانه 109+710^9 + 7 برای او حساب کنید.

به عبارتی دیگر اگر تعداد قوی‌تر شدن‌ها برای ترتیب π\pi از زندانی‌ها برابر f(π)f(\pi) و TT مجموعه همه‌ی n!n! ترتیب ممکن باشد شما باید πTf(π)\sum\limits_{\pi \in T} f(\pi) را حساب کنید.

ورودی🔗

در خط اول ورودی، تعداد زندانی‌ها یا همان nn می‌آید. 1n1061 \leq n \leq 10^6

در خط دوم، nn عدد می‌آید که عدد iiم برابر aia_i یا همان زور نفر iiم است. 1ai1091 \leq a_i \leq 10^9

خروجی🔗

در تنها خط خروجی جواب مسئله را به پیمانه 109+710^9 + 7 خروجی دهید.

زیرمسئله‌ها🔗

زیرمسئله نمره محدودیت
۱ ۶ 1n111 \leq n \leq 11
۲ ۱۷ 1n3001 \leq n \leq 300
۳ ۱۱ اندازه هر زندانی عددی فرد است.
۴ ۲۰ 1n30001 \leq n \leq 3000
۵ ۴۶ بدون محدودیت اضافی.

مثال‌ها🔗

ورودی نمونه ۱🔗

3
2 1 2
Plain text

خروجی نمونه ۱🔗

2
Plain text

ورودی نمونه ۲🔗

6
4 5 5 5 3 3
Plain text

خروجی نمونه ۲🔗

360
Plain text