BZOJ2160:拉拉队排练(Manacher)
Description
艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了。拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛。所以作为拉拉队队长的楚雨荨同学知道,帮助篮球队训练好拉拉队有多么的重要。拉拉队的选拔工作已经结束,在雨荨和校长的挑选下,n位集优秀的身材、舞技于一体的美女从众多报名的女生中脱颖而出。这些女生将随着篮球队的小伙子们一起,和对手抗衡,为艾利斯顿篮球队加油助威。一个阳光明媚的早晨,雨荨带领拉拉队的队员们开始了排练。n个女生从左到右排成一行,每个人手中都举了一个写有26个小写字母中的某一个的牌子,在比赛的时候挥舞,为小伙子们呐喊、加油。雨荨发现,如果连续的一段女生,有奇数个,并且他们手中的牌子所写的字母,从左到右和从右到左读起来一样,那么这一段女生就被称作和谐小群体。现在雨荨想找出所有和谐小群体,并且按照女生的个数降序排序之后,前K个和谐小群体的女生个数的乘积是多少。由于答案可能很大,雨荨只要你告诉她,答案除以19930726的余数是多少就行了。
Input
输入为标准输入。第一行为两个正整数n和K,代表的东西在题目描述中已经叙述。接下来一行为n个字符,代表从左到右女生拿的牌子上写的字母。
Output
输出为标准输出。输出一个整数,代表题目描述中所写的乘积除以19930726的余数,如果总的和谐小群体个数小于K,输出一个整数-1。
Sample Input
ababa
Sample Output
【样例说明】
和谐小群体女生所拿牌子上写的字母从左到右按照女生个数降序排序后为ababa, aba, aba, bab, a, a, a, b, b,前三个长度的乘积为。
HINT
总共20个测试点,数据范围满足:
Solution
对于每一个长为L的奇回文串,显然ta包含的和谐团体为1~L的奇回文串
求出len数组后,每一个和谐团体就可以很容易用前缀和求解
最后用快速幂统计一下答案即可。
Code
1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<algorithm> 5 #define N (2000000+1000) 6 #define MOD (19930726) 7 using namespace std; 8 9 long long n,k,tot,len[N],sum[N]; 10 char a[N],s[N]; 11 12 long long Qpow(long long a,long long b,long long p) 13 { 14 long long ans=1,base=a; 15 while (b!=0) 16 { 17 if (b&1) ans=ans*base%p; 18 base=base*base%p; b>>=1; 19 } 20 return ans; 21 } 22 23 void Manacher() 24 { 25 long long x,mid=0,maxn=0; 26 for (int i=1; i<=tot; ++i) 27 { 28 if (i>maxn) x=1; 29 else x=min(maxn-i+1,len[mid*2-i]); 30 while (s[i+x]==s[i-x]) x++; 31 len[i]=x; 32 if (i+x-1>maxn) maxn=i+x-1,mid=i; 33 } 34 } 35 36 int main() 37 { 38 scanf("%lld%lld%s",&n,&k,a); 39 40 s[++tot]='@'; s[++tot]='#'; 41 for (int i=0; i<n; ++i) 42 s[++tot]=a[i], s[++tot]='#'; 43 s[++tot]='$'; 44 Manacher(); 45 46 for (int i=3; i<tot-1; i+=2) 47 sum[1]++,sum[len[i]]--; 48 for (int i=1; i<=tot; ++i) 49 sum[i]+=sum[i-1]; 50 51 long long ans=1; 52 for (int i=n%2?n:n-1; i>=1; i-=2) 53 if (sum[i]<=k) (ans*=Qpow(i,sum[i],MOD))%=MOD,k-=sum[i]; 54 else {(ans*=Qpow(i,k,MOD))%=MOD; break;} 55 printf("%lld",ans); 56 }
转载于:https://www.cnblogs.com/refun/p/9446717.html
BZOJ2160:拉拉队排练(Manacher)相关推荐
- BZOJ 2160 拉拉队排练
2160: 拉拉队排练 Description 艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了.拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛.所以作为拉拉队队长的楚雨 ...
- bzoj 2160: 拉拉队排练
2160: 拉拉队排练 Time Limit: 10 Sec Memory Limit: 259 MB [Submit][Status][Discuss] Description 艾利斯顿商学院篮球 ...
- [manacher]拉拉队排练
题目描述 艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了.拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛.所以作为拉拉队队长的楚雨荨同学知道,帮助篮球队训练好拉拉队有多 ...
- [回文树][BZOJ2160][国家集训队]拉拉队排练
Description 艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了.拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛.所以作为拉拉队队长的楚雨荨同学知道,帮助篮球队训 ...
- 【洛谷 P1659】 [国家集训队]拉拉队排练(manacher)
题目链接 马拉车+简单膜你 #include <cstdio> #include <cstring> #include <algorithm> using name ...
- P1659 [国家集训队]拉拉队排练
题目描述 艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了.拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛.所以作为拉拉队队长的楚雨荨同学知道,帮助篮球队训练好拉拉队有多 ...
- 题解报告——拉拉队排练
题目传送门 题目描述 艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了.拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛.所以作为拉拉队队长的楚雨荨同学知道,帮助篮球队训练 ...
- luogu P1659 [国家集训队]拉拉队排练
唔....话说好久没有发布题解了(手痒痒了 首先特别鸣谢lykkk大佬今天下午教我Manacher算法,甚是感谢 为了体现学习成果,写一篇蒟蒻版的题解(大佬勿喷 言归正传 题面-->在这儿 首先 ...
- [ BZOJ 2160 ] 拉拉队排练
\(\\\) \(Description\) 一个由小写字母构成的长为\(N\)的字符串,求前\(K\)长的奇数长度回文子串长度之积,对\(19930726\)取模后的答案. \(N\in [1,10 ...
最新文章
- 增强包_机电工程学院开展“情暖冬日,爱在机电”冬至包饺子活动
- springcloud 组件_深入理解 Spring Cloud 核心组件与底层原理
- boost::subgraph用法的测试程序
- layui按钮展开、_layui框架,点击某个按钮,让layui的日期插件选中的值清空
- get到一个生气后的牵手方式!太可爱了
- 银行营业网点管理系统——entity类(Branches)
- arm-linux-gnueabihf gcc8.3交叉编译工具搭建教程
- 1-4 TCP/IP协议族
- css的一些常见问题处理方法
- Caffe中merge卷积和bn层的原理
- 为了健康,别做这20件事
- ASP.net 中 OutputCache 指令各个参数的作用。
- 第5-5课:最大流问题(图文篇)
- 计算机网络有线电视网和电话网区别,计算机网络习题答案
- c加加语言订餐系统代码,【加加餐饮管理系统--前台营业子系统|餐饮点菜收银软件】免费申请试用_选软件网...
- 寒武纪2021数字后端笔试题
- win7旗舰版配置FTP- 添加用户
- 多宽带联网(一) OpenWrt中使用Macvlan实现单线多拨上网
- 输入学生的学号及语文、数学、英语成绩, 输出学生各科成绩及率均成绩信息
- 使用php解析url中出现\u002乱码问题的方法
热门文章
- 有了台湾三巨散热风扇,机械设备散热不再是难题!
- 专属爸妈和新生儿的10款亲子游戏推荐
- 电脑经常黑屏死机是什么原因?
- 2D横版冒险文字游戏Horror Book2项目总结
- 有趣的绘画系统推荐与《达芬奇的人生密码》观后感
- Nginx官方文档(十五)【HTTP之ngx_http_dav_module|ngx_http_empty_gif_module|ngx_http_f4f_module】
- 坦克世界显示服务器未就绪,以前一直玩坦克世界,1个星期前忽然发现FPS变得很低...
- 是不是老了,总是怀念过去的岁月
- android高级面试题,有难度
- Integer初始化