اکبرجوجه


  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

یک درخت nn راسی به شما داده می شود.

مجموعه PP (که می‌تواند تهی باشد) از رئوس درخت را اکبرجوجه مینامیم، اگر برای هر دو عضو متمایز uu و vv در PP، هیچ یک از uu یا vv جد دیگری نباشد.

می گوییم راس uu جد راس vv است اگر در مسیر vv به راس ۱، راس uu وجود داشته باشد.

هدف پیدا کردن باقی‌مانده تعداد زیرمجموعه‌های اکبرجوجه از رئوس درخت بر 109+710^{9} + 7 می‌باشد، این عدد را در خروجی چاپ کنید.

ورودی🔗

در خط اول ورودی عدد nn که به شما داده می‌شود که بیانگر تعداد رئوس گراف است.

سپس در n1n-1 خط ، و در خط ii ام، دو عدد uiu_{i} و viv_{i} می‌آید که به معنی یالی بین این دو راس است.

تضمین می‌شود گراف ورودی درخت است.

1n100 0001 \le n \le 100\ 0001ui,vin1 \le u_{i} , v_{i} \le n

خروجی🔗

در تنها خط خروجی باقی‌مانده تعداد زیرمجموعه‌های اکبرجوجه درخت را بر 109+710^{9} + 7 چاپ کنید.

مثال🔗

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

4
1 2
2 3
3 4
Plain text

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

5
Plain text

شرح ورودی و خروجی نمونه شماره یک : مجموعه موردنظر حداکثر می‌تواند شامل یک راس باشد که خود چهار حالت دارد و یک حالت هم مجموعه تهی است، پس پاسخ برابر پنج است.

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

4
1 2
1 3
1 4
Plain text

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

9
Plain text

درخت کسرا


  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

درخت دودویی از کسرها داریم که روی هر راسش کسری به فرم aibi\frac {a_i} {b_i} نوشته شده است. درخت به این شکل ساخته می‌شود:

  1. a1a_{1} = b1b_{1} = 11
  2. a2ia_{2i} = (aia_{i} + bib_{i} ) , b2ib_{2i} = bib_{i} (بچه سمت چپ)
  3. a2i+1a_{2i+1} = aia_{i} , b2i+1b_{2i+1} = (aia_{i} + bib_{i} ) (بچه سمت راست)

فاصله دو راس در درخت را تعداد یال‌های تنهای مسیر بینشان تعریف می‌کنیم.

به شما QQ درخواست که هر کدام شامل کسری به فرم piqi\frac {p_i} {q_i} داده می‌شود.

برای هر عدد موجود در درخواست‌ها، اگر تنها یک راس در درخت وجود داشت که کسرش برابر کسر ورودی داده شده بود، فاصله راس آن کسر تا راس ۱ را در خروجی چاپ کنید و در غیر این صورت 1-1 خروجی دهید.

ورودی🔗

در خط اول QQ و در QQ خط بعدیpip_{i} و qiq_{i} به شما داده شده.

1Q100 0001 \le Q \le 100\ 000

1pi,qi10181 \le p_{i},q_{i} \le 10^{18}

خروجی🔗

در خط iiام اگر کسری معادل عدد piqi\frac {p_i} {q_i} بود و فقط این کسر معادل این عدد بود فاصله‌ی آن را از راس ۱ خروجی دهید در غیر این صورت 1-1 خروجی دهید.

مثال🔗

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

2
1 2
3 5
Plain text

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

1
3
Plain text

دنباله ولایی


  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

دنباله ولایی، یک دنباله به طول nn از اعداد حسابی به صورت a0,a1,....,an1a_{0},a_{1},....,a_{n-1} است که aia_{i} برابر تعداد تکرارهای عدد ii در دنباله‌ی aa است.

برای مثال دنباله 2,0,2,02,0,2,0 این خاصیت را دارد زیرا تعداد ۰ های دنباله برابر با ۲، تعداد ۱ های دنباله برابر با ۰، تعداد ۲ های دنباله برابر با ۲ و تعداد ۳ های دنباله برابر با ۰ است.

عدد nn به شما داده شده، دنباله‌های ولایی به طول nn را چاپ کنید.

ورودی🔗

در تنها خط از ورودی عدد nn داده شده. 1n1 0001 \le n \le 1\ 000

خروجی🔗

در اولین خط از خروجی تعداد دنباله های ولایی به طول nn را چاپ کنید. سپس در خطوط بعدی، در هر خط یک دنباله ولایی را چاپ کنید. دنباله ها باید به ترتیب کتابخانه ای خروجی داده شوند.

یک دنباله از دنباله‌ی دیگر در ترتیب کتابخانه‌ای زودتر می‌آید اگر در محل چپ‌ترین محل تفاوت دو دنباله، دنباله‌ی اول عدد کوچکتری داشته باشد.

مثال🔗

ورودی نمونه🔗

1
Plain text

خروجی نمونه🔗

0
Plain text

تابع


  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۶۴ مگابایت

تابع f(i,j)f(i , j) روی آرایه‌ی aa به طول nn به این شکل تعریف می‌شود:

  1. f(i,i)=aif(i , i) = a_{i}
  2. f(i,j)=max(f(i+1,j),f(i,j1),min(ai,ai+1,...,aj)×(ji+1))(i<j)f(i , j) = max( f(i+1 , j) , f(i , j-1) , min( a_{i} , a_{i+1} , ... , a_{j} ) \times (j-i+1) ) (i<j)

به شما QQ جفت عدد داده می‌شود.

هر جفت دارای دو عدد lil_{i} و rir_{i} است.

مقدار زیر را خروجی دهید:

max(f(l1,r1),f(l2,r2),...,f(lQ,rQ))max( f(l_{1} , r_{1}) , f(l_{2} , r_{2}) , ... , f(l_{Q} , r_{Q}) )

ورودی🔗

در خط اول دو عدد nn و QQ داده می‌شود.

در خط بعدی nn عدد a1a_{1} تا ana_{n} داده می‌شود.

در QQ خط بعدیlil_{i} و rir_{i} به شما داده می‌شود.

1Q,n1 000 0001 \le Q,n \le 1\ 000\ 000

1ai1 000 000 0001 \le a_{i} \le 1\ 000\ 000\ 000

1lirin1 \le l_{i} \le r_{i} \le n

تضمین می‌شود تمام اعداد آرایه aa متمایزند.

خروجی🔗

مقدار خواسته شده را خروجی دهید.

مثال🔗

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

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

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

6
Plain text

عدد بوگندوی رشته‌ی خفن


  • محدودیت زمان: ۳ ثانیه
  • محدودیت حافظه: ۱۲۸ مگابایت

آرایه ای به طول nn داریم. هر عضو از این آرایه یک رشته به طول kk است که از ۰ و ۱ تشکیل شده است (رشته باینری به طول kk).

رشته خفن یک بازه از آرایه، یک رشته به طول kk است که بیت iiام آن برابر با ۱ است اگر حداقل یکی از رشته های بازه، بیت iiامش برابر با ۱ باشد.

عدد بوگندوی یک رشته برابر با تعداد بیت های ۱ آن است.

به شما qq درخواست داده می‌شود و در هر مرحله دو عدد l,rl,r داده می‌شود و شما باید عدد بوگندوی رشته خفن بازه [l,r][l,r] را چاپ کنید.

ورودی🔗

به دلیل حجم زیاد ورودی، ورودی به یک روش غیر معمول داده می‌شود:

در سطر اول سه عدد nn و mm و kk آمده است.

در mm خط بعدی، در هر خط ابتدا یک رشته kk بیتی sis_{i} آمده. سپس یک عدد cnticnt_{i} آمده و cnticnt_{i} عدد indexijindex_{ij} آمده که بیانگر این است که رشته موجود در خانه ی indexijindex_{ij} از آرایه برابر با sis_{i} است. تضمین می‌شود که هر خانه از آرایه دقیقا یکبار به عنوان indexindex ظاهر می‌شود.

در خط بعدی عدد qq آمده است. سپس در qq خط بعدی به شما درخواست‌ها به صورت دو عدد l,rl,r داده می‌شود که باید به آنها جواب دهید. 1lrn100 0001 \le l \le r \le n \le 100 \ 000 1m1 0001 \le m \le 1\ 000 1k3 0001 \le k \le 3\ 000 1q1 000 0001 \le q \le 1\ 000\ 000

خروجی🔗

در qq خط جواب هر درخواست را چاپ کنید.

مثال🔗

ورودی نمونه🔗

8 7 5
10001 1 5
10100 1 1
10001 1 3
00100 1 8
00011 1 7
11000 2 2 4
01110 1 6
8
8 8
1 3
3 5
5 6
8 8
6 8
8 8
3 6
Plain text

خروجی نمونه🔗

1
4
3
5
1
4
1
5
Plain text

اعضای آرایه به این صورت اند : 10100,11000,10001,11000,10001,01110,00011,0010010100,11000,10001,11000,10001,01110,00011,00100 در درخواست اول فقط عضو هشتم رشته آمده که تعداد بیت‌های ۱ اش برابر با یک است.

در درخواست دوم اعضای ۱ تا ۳ درون بازه اند. رشته‌ی خفن این بازه رقم های اول، دوم، سوم و پنجم اش برابر با ۱ اند.

در درخواست سوم اعضای ۳ تا ۵ درون بازه اند. رشته‌ی خفن این بازه رقم های اول، دوم و پنجم اش برابر با ۱ اند.