\(\\\)

\(Description\)


一个由小写字母构成的长为\(N\)的字符串,求前\(K\)长的奇数长度回文子串长度之积,对\(19930726\)取模后的答案。

  • \(N\in [1,10^6]\),\(K\in [1,10^{12}]\)

\(\\\)

\(Solution\)


  • \(Manacher\)处理出所有位置的回文半径,因为答案要求奇数长度,所以不用插入特殊字符,在原串上直接跑\(Manacher\)就好,回文半径内的以当前点为回文中心的每一个子串都是回文串。
  • 所以开一个长度的桶,只给回文半径对应的最长子串长度打标记,显然一个标记代表着后面所有位置都\(+1\),所以计算的时候,一个长度的回文子串个数是长度标记的前缀和。
  • 要求的\(K\)非常大,快速幂处理。

\(\\\)

\(Code\)


#include<cmath>
#include<cstdio>
#include<cctype>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 1000010
#define R register
#define gc getchar
#define mod 19930726
using namespace std;
typedef long long ll;char c,s[N];ll m,res=1,sum;int n,len[N],cnt[N];inline void init(){scanf("%d%lld",&n,&m);while(!isalpha(c=gc()));s[1]=c; s[0]='['; s[n+1]=']';for(R int i=2;i<=n;++i) s[i]=gc();
}inline void manacher(){for(R int i=1,p=0,mr=0;i<=n;++i){len[i]=i>mr?1:min(mr-i+1,len[(p<<1)-i]);while(s[i-len[i]]==s[i+len[i]]) ++len[i];if(i+len[i]-1>mr){p=i;mr=i+len[i]-1;}++cnt[(len[i]<<1)-1];}
}inline ll qpow(ll x,ll t){ll res=1;while(t){if(t&1) (res*=x)%=mod;(x*=x)%=mod; t>>=1;}return res;
}int main(){init();manacher();for(R int i=((n/2)<<1)+1;i>=1;i-=2){sum+=(ll)cnt[i];if(sum>=m){printf("%lld",(res*qpow(i,m))%mod);return 0;}(res*=qpow(i,sum))%=mod; m-=sum;}puts("-1");return 0;
}

转载于:https://www.cnblogs.com/SGCollin/p/9690070.html

[ BZOJ 2160 ] 拉拉队排练相关推荐

  1. BZOJ 2160 拉拉队排练

    2160: 拉拉队排练 Description 艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了.拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛.所以作为拉拉队队长的楚雨 ...

  2. bzoj 2160: 拉拉队排练

    2160: 拉拉队排练 Time Limit: 10 Sec  Memory Limit: 259 MB [Submit][Status][Discuss] Description 艾利斯顿商学院篮球 ...

  3. 【BZOJ】2160拉拉队排练-回文自动机

    题解 这题好坑啊.模数也十分诡异. 注意:K≤1012K≤1012K\leq 10^{12},要开long longlonglonglong\ long. 注意:只要奇数个数的回文串 注意:达不到KK ...

  4. HYSBZ - 2160 拉拉队排练(回文自动机)

    题目链接:点击查看 题目大意:给出一个字符串 s ,和一个整数 k,现在要求出所有长度为奇数的回文子串从大到小开始数前 k 个回文子串的长度的乘积 题目分析:回文自动机跑一遍字符串 s 后把长度为奇数 ...

  5. [manacher]拉拉队排练

    题目描述 艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了.拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛.所以作为拉拉队队长的楚雨荨同学知道,帮助篮球队训练好拉拉队有多 ...

  6. 题解报告——拉拉队排练

    题目传送门 题目描述 艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了.拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛.所以作为拉拉队队长的楚雨荨同学知道,帮助篮球队训练 ...

  7. BZOJ2160:拉拉队排练(Manacher)

    Description 艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了.拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛.所以作为拉拉队队长的楚雨荨同学知道,帮助篮球队训 ...

  8. P1659 [国家集训队]拉拉队排练

    题目描述 艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了.拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛.所以作为拉拉队队长的楚雨荨同学知道,帮助篮球队训练好拉拉队有多 ...

  9. [回文树][BZOJ2160][国家集训队]拉拉队排练

    Description 艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了.拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛.所以作为拉拉队队长的楚雨荨同学知道,帮助篮球队训 ...

最新文章

  1. 为什么不记录慢速查询?
  2. 利用返回引用来操作结构体
  3. Jmeter常用插件——梯度加压、响应时间、TPS_老版本
  4. A. Regular Bracket Sequences
  5. 计算机通信辞典登录,数字化
  6. 网校网络工程师视频下载
  7. MAC iterm2 常用快捷键大全
  8. android内存泄漏MAT,利用Android Studio、MAT对Android进行内存泄漏检测
  9. 成功 Root ------ 红米note3
  10. hive3.1.2 分布式安装 (基于hadoo3.1.3+spark)
  11. sql打印每年入职人数_2015年3D打印基础知识-拥有16年全职经验的人
  12. 2019年Java春招汇总,技术类校招社招千道面试题,几百份大厂面经(附答案+考点)...
  13. linux渗透后清除日志,后渗透阶段清理痕迹方式总结
  14. 安全红蓝对抗反制(反捕、画像)
  15. ROS on DDS
  16. CSS第7章上机练习1(制作QQ会员页面导航)
  17. (原创)IR2101应用笔记(IR2101)(全桥)(MOS)
  18. cs224n 2019 Lecture 9: Practical Tips for Final Projects
  19. Unity Shader入门
  20. python实现微信机器人群发软件_Python自制微信机器人:群发消息、自动接收好友...

热门文章

  1. java setsession_Java Session.setServerAliveInterval方法代码示例
  2. vue.js根据数据循环生成表格_vue.js循环for(列表渲染)详解
  3. centos 重启网卡_CentOS6 网络管理之网卡配置及简单路由设置
  4. 如何在redhat8里使用gcc命令_如何使用who命令检查用户登录信息
  5. mysql 经典入门教程_MySQL 经典入门教程
  6. mysql与串口通信_虚拟机串口与主机串口通信·小程序(下)
  7. php注册登录遍写入 遍验证,自动注册登录验证机制的php代码
  8. 县级的图书馆计算机管理员,图书馆管理员的岗位职责
  9. python 微信支付接口 详解_Python支付接口汇总大全(包含微信、支付宝等,长期更新、欢迎补充)...
  10. cwc云莱特链_CWC的完整形式是什么?