题目链接

马拉车+简单膜你

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN = 11000010;
const int MOD = 19930726;
char b[MAXN], a[MAXN << 1];
int hw[MAXN << 1], ans = 1, n, c[MAXN];
#define ll long long
ll now, m;
int fast_pow(int a, ll k){
int ans = 1;
while(k){
if(k & 1) ans = (ll)ans * a % MOD;
a = (ll) a * a % MOD;
k >>= 1;
}
return ans;
}
int main(){
scanf("%d%lld", &n, &m);
scanf("%s", b);
a[0] = a[1] = '#';
for(int i = 0; i < n; ++i)
a[(i << 1) + 2] = b[i], a[(i << 1) + 3] = '#';
int maxright = 0, mid; n = (n << 1) + 3;
for(int i = 1; i < n; ++i){
if(i < maxright)
hw[i] = min(hw[(mid << 1) - i], hw[mid] + mid - i);
else hw[i] = 1;
while(a[i + hw[i]] == a[i - hw[i]]) ++hw[i];
if(hw[i] + i > maxright){
maxright = hw[i] + i;
mid = i;
}
++c[hw[i] - 1];
}
for(int i = (n - 3) >> 1; i; --i){
if(i & 1 ^ 1) continue;
now += c[i];
if(m <= now){ ans = (ll) ans * fast_pow(i, m) % MOD; m = 0; break; }
m -= now; ans = (ll) ans * fast_pow(i, now) % MOD;
}
if(m) ans = -1;
printf("%d\n", ans);
return 0;
}

【洛谷 P1659】 [国家集训队]拉拉队排练(manacher)的更多相关文章

  1. 洛谷 P1659 [国家集训队]拉拉队排练(Manacher)

    题目链接:https://www.luogu.com.cn/problem/P1659 思路: 首先跑一遍Manacher,用$cnt_i$记录长为$i$的回文串有多少个. 所记录的$cnt$并不是最 ...

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

    唔....话说好久没有发布题解了(手痒痒了 首先特别鸣谢lykkk大佬今天下午教我Manacher算法,甚是感谢 为了体现学习成果,写一篇蒟蒻版的题解(大佬勿喷 言归正传 题面——>在这儿 首先 ...

  3. [国家集训队] 拉拉队排练 - Manacher

    用 Manacher 跑出回文串长,注意这里不需要偶数长度所以不需要对串做一些奇怪的处理 然后用前缀和搞一下,计算答案时跑快速幂即可 #include <bits/stdc++.h> us ...

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

    思路 求出cnt和len之后,直接乘起来即可 代码 #include <cstdio> #include <algorithm> #include <cstring> ...

  5. 模板—点分治A(容斥)(洛谷P2634 [国家集训队]聪聪可可)

    洛谷P2634 [国家集训队]聪聪可可 静态点分治 一开始还以为要把分治树建出来……• 树的结构不发生改变,点权边权都不变,那么我们利用刚刚的思路,有两种具体的分治方法.• A:朴素做法,直接找重心, ...

  6. [洛谷P1527] [国家集训队]矩阵乘法

    洛谷题目链接:[国家集训队]矩阵乘法 题目背景 原 <补丁VS错误>请前往P2761 题目描述 给你一个N*N的矩阵,不用算矩阵乘法,但是每次询问一个子矩形的第K小数. 输入输出格式 输入 ...

  7. 洛谷 P4555 [国家集训队]最长双回文串 解题报告

    P4555 [国家集训队]最长双回文串 题目描述 顺序和逆序读起来完全一样的串叫做回文串.比如acbca是回文串,而abc不是(abc的顺序为abc,逆序为cba,不相同). 输入长度为\(n\)的串 ...

  8. 洛谷P1501 [国家集训队]Tree II(LCT,Splay)

    洛谷题目传送门 关于LCT的其它问题可以参考一下我的LCT总结 一道LCT很好的练习放懒标记技巧的题目. 一开始看到又做加法又做乘法的时候我是有点mengbi的. 然后我想起了模板线段树2...... ...

  9. 洛谷P2619 [国家集训队2]Tree I(带权二分,Kruscal,归并排序)

    洛谷题目传送门 给一个比较有逼格的名词--WQS二分/带权二分/DP凸优化(当然这题不是DP). 用来解决一种特定类型的问题: 有\(n\)个物品,选择每一个都会有相应的权值,需要求出强制选\(nee ...

  10. 洛谷 P1407 [国家集训队]稳定婚姻 解题报告

    P1407 [国家集训队]稳定婚姻 题目描述 我国的离婚率连续7年上升,今年的头两季,平均每天有近5000对夫妇离婚,大城市的离婚率上升最快,有研究婚姻问题的专家认为,是与简化离婚手续有关. 25岁的 ...

随机推荐

  1. Linux下的nexus数据迁移

    刚到公司没多久,目前公司有两个项目公用一个nexus的maven私服,现在想把两个私服的jar包拆分开: 我在原私服的nexus服务器中, 1.备份原nexus使用命令 完成tar包的压缩 打包完毕后 ...

  2. 银联高校极客挑战赛第一场 A.码队女朋友的王者之路[水题]

    目录 题目地址 题干 代码和解释 题目地址 计蒜客回顾比赛 码队女朋友的王者之路 题干 代码和解释 本题难度不大,但是一开始没有读懂题,以为净胜场次是确定的,没有"最高净胜场次"的 ...

  3. GPU性能越来越强大,为何直到现在还是不能取代CPU?

      从思路上说,GPU相当于火车,一个车头带几十节车厢,一下子把成千上万吨货全给你拉目的地:CPU相当于汽车,拉货旅游样样能干.因此,如果单纯比运力,一列火车比得过成百上千辆汽车:但如果几百人有几百个 ...

  4. Python plot_surface(Axes3D)方法:绘制3D图形

    3D 图形需要的数据与等高线图基本相同:X.Y 数据决定坐标点,Z 轴数据决定 X.Y 坐标点对应的高度.与等高线图使用等高线来代表高度不同,3D 图形将会以更直观的形式来表示高度. 为了绘制 3D ...

  5. pg执行计划分析小笔记

    开发同事问,为什么一个标量子查询,放在where子句后进行大小判断,比不放在where子句后进行判断大小运行的更快?按道理加了一次判断,不是应该变慢么? 把语句拿过来,看了一下两个语句的执行计划: 语 ...

  6. Wordpress 获取 custom post type 的当前文章 分类信息

    // knowledgebase_category 为 custom post type taxonomy $terms = get_the_terms( get_the_ID() , 'knowle ...

  7. (转)scipy详解

    原文:https://www.cnblogs.com/ws0751/p/8361353.html#top 登月图片消噪   scipy.fftpack模块用来计算快速傅里叶变换速度比传统傅里叶变换更快 ...

  8. 【转】redis报错“max number of clients reached"

    查看redis监控的时候看到redis的graph出现不正常的情况,截图如下: 如上面截图所展示的样子,可以看到redis 的客户端连接数很突兀的上升到10K,又突然下降到0.排除了监控本身的原因,很 ...

  9. RabbitMQ整合Spring Booot【Exchange-Fanout模式】

    pom: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.o ...

  10. Python - Django - form 组件自定义校验

    reg2.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...