Problem

7 /8


تماس فرهنگی

Theory Click to read/hide

علاوه بر دنباله ها، می توانید مجموعه ها را نیز هش کنید. یعنی مجموعه ای از اشیاء بدون نظم بر روی آنها. طبق فرمول زیر محاسبه می شود:
hash(A) = \(\sum_{a \in A} p^{ord(a)}\)   <- شمارش همه چیز مدولو
که در آن ord تابعی است که به یک شی از مجموعه، عدد ترتیبی مطلق خود را در بین تمام اشیاء ممکن نسبت می دهد (مثلاً اگر اشیاء اعداد طبیعی باشند، ord(x) = x، و اگر حروف لاتین کوچک باشد، ord(& #39;a') = 1، ord('b') = 2 و غیره)

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

همانطور که قبلاً می توانید درک کنید، عناصر منفرد به عنوان مجموعه هایی با اندازه 1 در نظر گرفته می شوند که می توانیم هش را برای آنها محاسبه کنیم. و مجموعه های بزرگتر به سادگی ترکیبی از چنین مجموعه های منفردی هستند که با ترکیب مجموعه ها، هش آنها را اضافه می کنیم.

در واقع، این هنوز همان هش چند جمله ای است، اما قبل از ضریب pm ، مقدار را داشتیم. از عنصر دنباله زیر عدد n - m - 1 (که در آن n طول دنباله است) و اکنون این تعداد عناصر مجموعه است که عدد ترتیبی مطلق آنها برابر با m است.

در چنین هش‌سازی، باید یک پایه به اندازه کافی بزرگ (بزرگتر از حداکثر اندازه مجموعه) انتخاب کرد یا از هش مضاعف استفاده کرد تا از موقعیت‌هایی اجتناب شود که مجموعه‌ای از اشیاء p با عدد ترتیبی مطلق m دارای هش یکسانی با مجموعه‌ای با یک شی با مطلق باشد. عدد ترتیبی m+1.
 

Problem

در آغاز قرن هجدهم، گروهی از کاوشگران اروپایی وارد جزیره‌ای شدند که در آن گروهی از قبایل زندگی می‌کردند که هرگز با نمایندگان تمدن اروپایی تماس نداشتند.

برای برقراری ارتباط موفقیت آمیز با بومیان، رهبر گروه قصد دارد به رهبر هر قبیله ای که ملاقات می کند هدیه ای بدهد. برای این منظور او یک زنجیره بلند شیشه ای شبیه به سنگ های قیمتی آورد.
بیایید رشته را به عنوان یک رشته s نشان دهیم که از حروف کوچک الفبای انگلیسی تشکیل شده است، جایی که هر حرف به معنای نوع تکه شیشه در موقعیت مربوطه است. 
محققان قرار است زنجیره را به چند تکه برش دهند و سپس دقیقاً یک قطعه را به رهبر هر قبیله ای که گروه با آن برخورد می کند، تحویل دهند. رهبر تحقیق تصمیم گرفت طبق قوانین زیر زنجیره را به قطعات تقسیم کند:
  • برای اینکه زمان زیادی برای برش صرف نشود، هر قطعه باید گروهی از قطعات شیشه ای مجاور در زنجیره باشد، یعنی زیر رشته ای از رشته s.
  • همه تکه های شیشه باید استفاده شوند، یعنی هر تکه شیشه باید دقیقاً در یک قطعه باشد.
  • از آنجایی که محققان نمی‌دانند بومیان برای انواع خاصی از شیشه ارزش قائل می‌شوند، می‌خواهند هر رئیسی بدون توجه به سفارش، همان مجموعه شیشه‌ای را دریافت کند. به عبارت دیگر برای هر نوع شیشه ای باید تعداد شیشه های این نوع در هر یک از قطعات یکسان باشد.
  • محققان نمی دانند چند قبیله در جزیره زندگی می کنند، بنابراین تعداد قطعات آماده شده باید تا حد امکان زیاد باشد.

به مدیر کمک کنید تا حداکثر تعداد قطعاتی را که می توان به دست آورد تعیین کند.

ورودی:
خط اول شامل رشته s است (1 <= |s| <= 5000000).

خروجی:
چاپ یک عدد واحد - حداکثر تعداد قطعات ممکن که محققان می توانند زنجیره ای را که دارند بدون نقض هیچ یک از شرایط فرموله شده توسط رهبر گروه برش دهند.

مثال:
  <بدن>
ورودی خروجی
عبابباب 3
aabb 1

توضیحات:
در مثال اول، محققان می توانند زنجیره 'abbabbbab' قطعات 'abb'، 'abb'، 'باب'، سپس رهبر هر قبیله ای که ملاقات می کنند یک لیوان از نوع 'a' و دو قطعه 'b'.

در مثال دوم، با رعایت تمام شرایط، نمی توان رشته را به بیش از یک قطعه تقسیم کرد.