HYSBZ 2160 拉拉隊排練(回文樹)

2022-01-24 15:45:06 字數 1512 閱讀 7911

time limit: 10 sec  memory limit: 259 mb

submit: 825  solved: 324

[submit][status][discuss]艾利斯頓商學院籃球隊要參加一年一度的市籃球比賽了。拉拉隊是籃球比賽的乙個看點,好的拉拉隊往往能幫助球隊增加士氣,贏得最終的比賽。所以作為拉拉隊隊長的楚雨蕁同學知道,幫助籃球隊訓練好拉拉隊有多麼的重要。拉拉隊的選拔工作已經結束,在雨蕁和校長的挑選下,n位集優秀的身材、舞技於一體的美女從眾多報名的女生中脫穎而出。這些女生將隨著籃球隊的小夥子們一起,和對手抗衡,為艾利斯頓籃球隊加油助威。乙個陽光明媚的早晨,雨蕁帶領拉拉隊的隊員們開始了排練。n個女生從左到右排成一行,每個人手中都舉了乙個寫有26個小寫字母中的某乙個的牌子,在比賽的時候揮舞,為小夥子們吶喊、加油。雨蕁發現,如果連續的一段女生,有奇數個,並且他們手中的牌子所寫的字母,從左到右和從右到左讀起來一樣,那麼這一段女生就被稱作和諧小群體。現在雨蕁想找出所有和諧小群體,並且按照女生的個數降序排序之後,前k個和諧小群體的女生個數的乘積是多少。由於答案可能很大,雨蕁只要你告訴她,答案除以19930726的餘數是多少就行了。

輸入為標準輸入。第一行為兩個正整數n和k,代表的東西在題目描述中已經敘述。接下來一行為n個字元,代表從左到右女生拿的牌子上寫的字母。

輸出為標準輸出。輸出乙個整數,代表題目描述中所寫的乘積除以19930726的餘數,如果總的和諧小群體個數小於k,輸出乙個整數-1。

5 3ababa

45回文樹模板

#include #include #include #include #include #include using namespace std;

typedef long long int ll;

const int maxn=1e6+5;

const ll mod=19930726;

char str[maxn];

ll n,k;

int cot;

ll sum;

struct _link

int get(int x,int y)

return 0;

}void insert(int x,int y,int z)

};struct node

c[maxn];

struct tree

void init()

int get_fail(int x)

int add(int x)

cnt[last]++;

return 1;

}void count()

ll fun()

return sum;

}}tree;

int cmp(node a,node b)

ll quick(ll n,ll x)

return sum;

}int main()

else

if(k==0)

break;

}printf("%lld\n",ans);

}return 0;

}

HYSBZ 2160 拉拉隊排練 回文樹

題意 前k長的 奇數長度 的回文串 長度的乘積 題解 因為k很大,所以我們儲存,每個本質不同字串的長度和數量,然後排序,從大到小列舉一遍即可 include using namespace std const int n 1000010 typedef long long ll struct pt ...

HYSBZ 2160 拉拉隊排練 回文自動機

題目大意 給出乙個字串 s 和乙個整數 k,現在要求出所有長度為奇數的回文子串從大到小開始數前 k 個回文子串的長度的乘積 題目分析 回文自動機跑一遍字串 s 後把長度為奇數的結點的長度和出現次數拿出來,配合上快速冪遍歷一遍求答案就好了 include include include include...

BZOJ 2160 拉拉隊排練

time limit 10 sec memory limit 259 mb submit 832 solved 326 submit status discuss 艾利斯頓商學院籃球隊要參加一年一度的市籃球比賽了。拉拉隊是籃球比賽的乙個看點,好的拉拉隊往往能幫助球隊增加士氣,贏得最終的比賽。所以作為...