bzoj 2160: 拉拉队排练

Description

艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了。拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛。所以作为拉拉队队长的楚雨荨同学知道,帮助篮球队训练好拉拉队有多么的重要。拉拉队的选拔工作已经结束,在雨荨和校长的挑选下,n位集优秀的身材、舞技于一体的美女从众多报名的女生中脱颖而出。这些女生将随着篮球队的小伙子们一起,和对手抗衡,为艾利斯顿篮球队加油助威。一个阳光明媚的早晨,雨荨带领拉拉队的队员们开始了排练。n个女生从左到右排成一行,每个人手中都举了一个写有26个小写字母中的某一个的牌子,在比赛的时候挥舞,为小伙子们呐喊、加油。雨荨发现,如果连续的一段女生,有奇数个,并且他们手中的牌子所写的字母,从左到右和从右到左读起来一样,那么这一段女生就被称作和谐小群体。现在雨荨想找出所有和谐小群体,并且按照女生的个数降序排序之后,前K个和谐小群体的女生个数的乘积是多少。由于答案可能很大,雨荨只要你告诉她,答案除以19930726的余数是多少就行了。

Input

输入为标准输入。第一行为两个正整数n和K,代表的东西在题目描述中已经叙述。接下来一行为n个字符,代表从左到右女生拿的牌子上写的字母。

Output

输出为标准输出。输出一个整数,代表题目描述中所写的乘积除以19930726的余数,如果总的和谐小群体个数小于K,输出一个整数-1。

Sample Input

5 3
ababa

Sample Output

45
【样例说明】
和谐小群体女生所拿牌子上写的字母从左到右按照女生个数降序排序后为ababa, aba, aba, bab, a, a, a, b, b,前三个长度的乘积为。

HINT

总共20个测试点,数据范围满足:

一道manacher题目,先直接套模版,用桶统计每一个长度的总数,即代码中的sum,求解时倒着来,用快速幂,注意只用奇数个的,偶数的直接跳过

#include<bits/stdc++.h>
#define ll long long
using namespace std;const int maxn = 1e6+50;const int mod = 19930726;int n,len[maxn<<1],sum[maxn<<1],len2,maxlen=-1;ll k;char s[maxn],news[maxn<<1];void manacher(){len[0]=0;int id=0,mx=0;news[0]='$';news[1]='#';for(int i=0;i<n;i++) news[(i<<1)+2]=s[i],news[(i<<1)+3]='#';for(int i=1;i<len2;i++){if(i<mx) len[i]=min(len[(id<<1)-i],mx-i);else len[i]=1;while(news[i+len[i]]==news[i-len[i]]) len[i]++;if(i+len[i]>mx){mx=len[i]+i;id=i;}sum[len[i]-1]++;}
}ll fast(ll x,ll k){ll ans=1;while(k){if(k&1) ans=ans*x%mod;k>>=1;x=x*x%mod;}return ans;
}int main(){scanf("%d%lld",&n,&k);scanf("%s",&s);len2=(n<<1)+1;manacher();ll tot=0,ans=1;for(int i=n%2==0?n-1:n;i>0;i-=2){tot+=sum[i];if(tot>k) {ans=ans*fast(i,k)%mod;break;}else {ans=ans*fast(i,tot)%mod;k-=tot;}}if(tot<k) printf("-1\n");else printf("%lld",ans%mod);return 0;
}

 

转载于:https://www.cnblogs.com/plysc/p/10506134.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264579.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java long double精度丢失_long long类型转double类型部分精度丢失问题

我最近做了一道题&#xff0c;一个64位(unsigned __int64)范围内的数输出其除以1000的值&#xff0c;并按四舍五入保留小数点后三位。我刚开始直接写WA&#xff0c;结果发现当数比较大的时候&#xff0c;结果后几位精度总会丢失&#xff0c;只好手动模拟了一个&#xff0c;水过…

从服务器上自动更新系统补丁

对于经常重系统的用户或公司,每次安装系统后,必须得从微软网站上面下载补丁,这样很浪费时间. 如何从自己服务器上自动更新系统补丁,方法如下: 服务器端 服务器端需要安装一个更新服务器软件,如:SUS (下载地址http://www.onlinedown.net/soft/35844.htm) 客户端设置 开始 -- 运行…

搭建于 Cubieboard 之上的超小型实时监控平台 - mjpg篇

2019独角兽企业重金招聘Python工程师标准>>> 运行于 Cubieboard开发板 之上的个人笔记博客 http://cb.e-fly.org:81/archives/system-camera-monitor-mjpg-streamer.html 原文作者&#xff1a;Cannikin原文链接&#xff1a;http://forum.cubietech.com/forum ... p…

java 判断一个字符串是否由数字组成的_Java中怎样判断一个字符串是否是数字

展开全部1.使用Character.isDigit(char)判断String str "123abc";if (!"".equals(str)) {char num[] str.toCharArray();//把字符串转换为字符数组StringBuffer title new StringBuffer();//使用StringBuffer类&#xff0c;把非数e69da5e887aa323131333…

博客园的BLOG也申请了

BLOG申请了不少,但还没定居过------大都不怎么满意. 希望这回能让我安定下来... 20150413转载于:https://www.cnblogs.com/lxwy/archive/2008/05/28/4420771.html

Docker 入坑教程笔记

Docker 入坑教程笔记 视频网址B站&#xff1a;点这里 查询命令 man docker 简单启动和退出 docker run --name [容器名] -i -t ubuntu /bin/bash 交互启动虚拟机-t 提供伪tty终端docker ps [-a][-l]docker inspect [container name or id] 配置信息&#xff0c;有用数据docker …

安卓开发工具

Android 下载需要用到的工具:(1)下载JAVA的IDE开发工具– Eclipse到Eclipse官方网站下载Ecplise For Java EE的最新Windows版本 下载Ecplise(2)下载Java开发包 — Java SE Development Kit (JDK) JDK 6到Sun官方网站下载JDK6,选择JDK 6 Update 12 下载JDK6(3)下载Android开发包…

java http 返回码_【Java】Http返回状态码

来自HttpStatus&#xff0c;记录一下CONTINUE(100, "Continue"),SWITCHING_PROTOCOLS(101, "Switching Protocols"),PROCESSING(102, "Processing"),CHECKPOINT(103, "Checkpoint"),OK(200, "OK"),CREATED(201, "Creat…

启明星辰招聘

呵&#xff0c;好简单的工作。一狠心一咬牙不去了....... 不如现在的工作环镜好。岗位名称&#xff1a;安全工程师 人数&#xff1a;4工作地点&#xff1a;北京 薪水范围&#xff1a;4000-8000元/月投递简历邮箱&#xff1a;hrvenustech.com.cn公司网站&#xff1a;www.venuste…

515. 在每个树行中找最大值

您需要在二叉树的每一行中找到最大的值。 示例&#xff1a; 输入: 1/ \3 2/ \ \ 5 3 9 输出: [1, 3, 9]在真实的面试中遇到过这道题&#xff1f;class Solution {public List<Integer> largestValues(TreeNode root) {List<Integer> res new ArrayList&l…

加密的一些概念

明文&#xff1a;可以被人或程序识别的数据。例如一个文本文件、一段歌词、一个Word文档、一首MP3、一个图片文件、一段视频等等。 加密算法&#xff1a;将数据搞乱掉的方法。 密钥&#xff08;密码&#xff09;&#xff1a;一个你在进行加密操作时给出的字符串&#xff0c;让加…

java有装箱和拆箱吗_Java中装箱和拆箱,你真的都懂么?

在给部门做分享的时候&#xff0c;一位同学提问说一直没搞明白Java的装箱和拆箱&#xff0c;让我给讲解下&#xff0c;所以才有了下面这篇文章&#xff1a;本次文章根据PPT分享整理而成&#xff0c;会有5点&#xff1a;1、什么是装箱和拆箱&#xff1f;2、基本数据类型和包装类…

架构-浅谈MySQL数据库优化

主从复制博文&#xff1a;http://lizhenliang.blog.51cto.com/7876557/1290431 读写分离博文&#xff1a;http://lizhenliang.blog.51cto.com/7876557/1305083 MySQL-MMM博文&#xff1a;http://lizhenliang.blog.51cto.com/7876557/1354576 &#xff08;一&#xff09;数据库部…

项目发布相关

1.证书 cer文件需要上传电脑CSR文件&#xff0c;所以其他电脑如需使用需要创建者导出&#xff0c;用于在项目在真机运行或archive的时候签名&#xff0c;Code Signing Identity. 项目App ID&#xff0c;Provisioning Profile只要有管理员权限就可以申请&#xff0c;与cer文件对…

端午随笔

今天是端午节&#xff0c;我也毕业了正式开始了工作生涯&#xff0c;四年的大学生活画上了句号。面临我是什么&#xff0c;我该何去何从。人生的道路已经脱离自己在大学期间的人生规划。新的开始&#xff0c;就要有新的计划。我在一家公司已经实习了三个月了&#xff0c;我是我…

java base64解码出错_Java Base64解码错误及解决方法

问题提出&#xff1a;自己在做一个小网站充当练手&#xff0c;但是前端图片经过base64加密后传往后端在解码。但是一直都有问题&#xff0c;请大神赐教public static string base64toimg(string src) throws ioexception {string uuid uuid.randomuuid().tostring();stringbui…

PPT图片内嵌文字效果

【摘要】在报纸杂志上我们经常看到&#xff0c;有些图片中可以嵌入文字&#xff0c;如下图所示的效果&#xff1a;今天我们一起来学习一下这种效果是怎样生成的。 【正文】以下的操作步骤为PowerPoint 2013版本。 一 插入图片并编辑图片在【插入-联机图片】中搜索需要的图片。…

[天地君亲若追问 枉为知音百年羞]2008.06.07 晃荡在芳华

洞房悄悄静悠悠&#xff0c;花烛高烧暖心头&#xff0c; 喜气阵阵难抑止&#xff0c;这姻缘百折千磨方成啊就。 三月来&#xff0c;屡托刘兄把亲求&#xff0c;每遭见拒愿难酬&#xff0c; 从此我诗书五经无心看&#xff0c;三餐茶饭懒下喉&#xff0c; 日卧书斋愁脉脉&#xf…

[BZOJ1297/Luogu4159][SCOI2009]迷路

题目链接&#xff1a; BZOJ1297 Luogu4159 首先考虑距离只有\(0,1\)的情况 那么如果设\(f[t][i][j]\)表示\(i\)到\(j\)走\(t\)时刻的方案数&#xff0c;有转移方程&#xff1a; \(f[t][i][j]\sum f[t-1][i][k]*f[t-1][j][k]\) 如果把\(f[t]\)看成一个\(n*n\)的矩阵就是\(f[t]f[…

java中的getfirst_Java LinkedList getFirst()用法及代码示例

Java.util.LinkedList.getFirst()方法用于从LinkedList或列表开头的元素中获取或检索第一个元素。用法:LinkedList.getFirst()参数&#xff1a;此方法不带任何参数。返回值&#xff1a;此方法返回第一个元素或列表开头的元素。以下示例程序旨在说明Java.util.LinkedList.getFir…