1009: [HNOI2008]GT考试 矩阵乘法优化DP+KMP
来源:互联网 发布:手机视频合并软件 编辑:程序博客网 时间:2024/05/17 06:13
好老的题了啊..
用
#include<iostream>#include<cstdio>#include<cstring>#define M 25using namespace std;int n,m,sum,MOD;char s[M];int p[M];struct Matrix{ long long a[M][M]; Matrix() { memset(a,0,sizeof(a)); } friend Matrix operator*(Matrix a,Matrix b) { Matrix ans; for (int i=0;i<m;i++) for (int j=0;j<m;j++) for (int k=0;k<m;k++) (ans.a[i][j]+=a.a[i][k]*b.a[k][j])%=MOD; return ans; } friend Matrix operator^(Matrix a,long long b) { Matrix ans; for (int i=0;i<m;i++) ans.a[i][i]=1; for (;b;b>>=1,a=a*a) if (b&1) ans=ans*a; return ans; }}a,ans;inline void kmp(){ int j=0; p[1]=0; for (int i=2;i<=m;i++) { while (j&&s[j+1]!=s[i]) j=p[j]; if (s[j+1]==s[i]) j++; p[i]=j; } for (int i=0;i<m;i++) for (int j=0;j<=9;j++) { int x=i; while (x&&s[x+1]-'0'!=j) x=p[x]; if (s[x+1]-'0'==j) a.a[i][x+1]++; else a.a[i][0]++; }}int main(){ scanf("%d%d%d",&n,&m,&MOD); scanf("%s",s+1); kmp(); ans=a^n; for (int i=0;i<m;i++) (sum+=ans.a[0][i])%=MOD; cout << sum << endl; return 0;}
0 0
- 1009: [HNOI2008]GT考试 矩阵乘法优化DP+KMP
- 【BZOJ】1009 [HNOI2008]GT考试 KMP+DP+矩阵优化
- 【DP+KMP+矩阵乘法】BZOJ1009(HNOI2008)[GT考试]题解
- [矩阵乘法+KMP] BZOJ1009: [HNOI2008]GT考试
- 【KMP+DP+矩阵优化】BZOJ1009 [HNOI2008]GT考试
- BZOJ1009: [HNOI2008]GT考试(KMP+矩阵优化DP)
- 【BZOJ1009】GT考试(HNOI2008)-DP矩阵优化+KMP
- BZOJ 1009 HNOI2008 GT考试 KMP算法+矩阵乘法
- bzoj 1009: [HNOI2008]GT考试 KMP+矩阵乘法
- 【bzoj1009】[HNOI2008]GT考试 矩阵+kmp+DP
- BZOJ 1009([HNOI2008]GT考试-KMP+矩阵加速Dp)
- [bzoj1009][kmp][DP][矩阵乘法]GT考试
- [BZOJ1009]HNOI2008 GT考试|KMP|递推|矩阵乘法
- BZOJ1009 [HNOI2008]GT考试(KMP算法+矩阵加速dp)
- BZOJ1009 [HNOI2008]GT考试【kmp+矩阵加速DP】
- bzoj1009 [HNOI2008]GT考试(KMP+DP+矩阵倍增)
- [bzoj1009][HNOI2008]GT考试(dp+矩阵加速+KMP)
- bzoj1009 GT考试 KMP+矩阵优化DP
- spring里头各种获取ApplicationContext的方法
- UIWebView与JS的深度交互
- Nginx学习 安装 命令 server配置
- 欢迎使用CSDN-markdown编辑器
- Cpp--类的组合
- 1009: [HNOI2008]GT考试 矩阵乘法优化DP+KMP
- C#中三层架构UI、BLL、DAL、Model实际操作
- 安卓中利用Handler实现定时器的效果
- volley使用加载json跟图片
- BZOJ 1143
- Java:按值传递还是按引用传递详细解说
- windows安装kafka的集群配置
- 【转载】利用java自带的base64实现加密、解密
- 《DLL for Win32/MFC》Part 2, DLL Client Application One