پاسخ پرسش CF-157-E
يكشنبه, ۲۷ فروردين ۱۳۹۱، ۰۹:۵۲ ب.ظ
Codeforces / Contest 157 / Problem E : Cipher
صورت اصلی سوال : http://codeforces.com/contest/157/problem/E
ترجمه :
یک رشته ی s از حرف کوچک لاتین به ما داده می شود ، در هر مرحله می توانیم دو حرف مجاور در رشته را انتخاب کنیم و یکی را به حرف قبلی خودش و دیگری با حرف بعد از خودش تغییر دهیم . واضح است که نمی توانیم حرف a را به حرف قبل از خودش و حرف z را به حرف بعد از خودش تبدیل کنیم .
برای مثال رشته ی abc را می توانیم به رشته ی bac ، acb و یا bbb (در دو مرحله) تبدیل کنیم .
می خواهیم به ازای رشته ی s تعداد رشته هایی را بیابیم که می توان این رشته را به آن ها تبدیل کرد .
توجه کنید این رشته ها شامل خود این رشته نمی شوند .
ورودی :
در اولین خط ورودی عدد t که تعداد ورودی هاست داده می شود و در t خط بعدی در هر خط یک رشته ی s داده می شود .
t حداکثر 104 و طول هر رشته ی s حداکثر 100 است .خروجی :
در هر خط پاسخ را به ازای ورودی متناظر به آن را چاپ کنید .
از آنجایی که این مقدار ممکن است بسیار بزرگ باشد باقیمانده آن را بر 7+109 را چاپ کنید.
شرح راه حل : می توانیم با استقرار ثابت کنیم هر رشته s را می توانیم به تمام رشته هایی که مجموع حرف آن برابر با مجموع حروف s است تبدیل کنیم و مجموع حروف هر رشته ای که بتوانیم s را به آن تبدیل کنیم برابر با مجموع حروف s است ....
کد راه حل : http://codeforces.com/contest/157/submission/1540177
۹۱/۰۱/۲۷