Թաքցված խնդիր
|Այս խնդիրը թաքցված է խմբագրական խրհրդի անդամի կողմից քանի որ կամ այն ոչ ճիշտ լեզվով է գրված,|կամ թեստային տվյալներն են սխալ, կամ խնդրի ձևակերպումը պարզ չէ։|

GEGNAKH - Գեղեցիկ նախածանցներ

Դիցուք ունենք K տառ պարունակող այբուբեն: Օրինակ, եթե K = 4, այբուբենը կարող է լինել {a,b,c,d}, և bbcac-ն այդ այբուբենով կազմված բառ:

Տրված S բառի համար, count(S, k)-ով նշանակենք k  տառի հանդիպումների քանակը S-ում: Օրինակ` count(bbcac, b) = 2 և count(bbcac, a) = 1:

S  բառի վերջից սիմվոլներ հեռացնելուց հետո ստացված բառը կանվանենք S–ի նախածանց (prefix): Օրինակ` acb –ի նախածանցներն են a-ն, ac-ն, և acb-ն:

Կասենք, որ S-ը ունի Գեղեցիկ նախածանցներ, եթե ցանկացած P նախածանցի և k1, k2 տառերի համար |count(P, k1) - count(P, k2)| <= 2: Օրինակ` bbcac-ն ունի գեղեցիկ նախածանցներ, բայց abbbc  չունի քանի որ count(abbb, b) = 3 և count(abbb, c) = 0:

Անհրաժեշտ է գտնել K չափի այբուբենում L երկարությամբ բոլոր գեղեցիկ նախածանց ունեցող բառերի քանակը: Քանի որ այդ քանակը կարող է շատ մեծ լինել, անհրաժեշտ է արտածել 1000000007-ի վրա բաժանելուց ստացված մնացորդը:

 

Մուտքը

Մուտքում տրված են L և K, 1<= L <= 1018 and 1 <= K <= 50 ամբողջ թվերը:

Ելքը

Ելքային ֆայլում անհրաժեշտ է արտածել մեկ ամբողջ թիվ - L երկարությամբ գեղեցիկ նախածանց ունեցող բառերի քանակը K տառ ունեցող այբուբենում: Քանի որ քանակը կարող է շատ մեծ լինել, անհրաժեշտ է արտածել 1000000007-ի վրա բաժանելուց ստացված մնացորդը:

Օրինակ

Մուտքը.
4 2

Ելքը.
12

Ավելացրեց.Andreasyan
Ամսաթիվ.2013-04-08
Ժամանակի սահմանափակումը.1s
Ծրագրի տեքստի սահմանափակումը.50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Լեզուներ.C CSHARP C++ 4.3.2 CPP CPP14 JAVA PAS-GPC PAS-FPC PYTHON3
Աղբյուրը.Հանրապետական 2013

թաքցնել մեկնաբանությունները
2013-04-20 20:56:13 Spar!k


Վերջին խմբագրածը. 2013-04-21 15:37:22
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.