HDU 5318 The Goddess Of The Moon
来源:互联网 发布:2017金英杰免费网络课 编辑:程序博客网 时间:2024/04/30 23:38
题目:说了个后羿的传说。。。
给你n种串,可以重复使用,要你用m个串连成一个长的串,问你会用多少种不一样的长串,,,两个串 a , b 可以相连的条件是a的结尾跟b的开头的字符要一样,一样的字符的长度大于2就行 如 121 跟 213 但121 跟 123 就不行,当然121跟121也行
11 111与111 11 连接的时候算两种
思路:构造一个可以矩阵m[i][j]代表以i串开头,j串结尾的串的种数;
#include <cstdio>#include <iostream>#include <queue>#include <cstring>#include <algorithm>using namespace std;#define ll long longconst int N = 55;const int mod = 1e9+7;int n,m;int num[N],t[N];struct mat{ll m[N][N];mat(){memset(m,0,sizeof(m));}void E(){for(int i = 0; i < N; i++){m[i][i] = 1;}}};mat multiply(mat a, mat b){mat ret;for(int i = 0; i < m; i++){for(int j = 0; j < m; j++){for(int k = 0; k < m; k++){ret.m[i][j]=(ret.m[i][j]+a.m[i][k]*b.m[k][j])%mod;}}}return ret;}mat q_pow(mat a,int k){mat ret;ret.E();while(k){if(k&1){ret = multiply(ret,a);}a = multiply(a,a);k=k>>1;}return ret;}void init_hash(){for(int i = 0; i < n; i++){t[i] = num[i];}m = unique(t,t+n)-t;}bool judge(int x,int y){char s1[15], s2[15];sprintf(s1,"%d",x);sprintf(s2,"%d",y);int l1 = strlen(s1), l2 = strlen(s2);int l = min(l1,l2);if(l<2)return false;for(int i = 2; i <= l; i++){int k = i;bool flag = true;while(k){if(s1[l1-k] != s2[i-k]){flag = false;break;}k--;}if(flag)return true;}return false;}mat getmat(){mat ret;for(int i = 0; i < m; i++){for(int j = 0; j < m; j++){if(judge(t[i], t[j])){ret.m[i][j] = 1;}}}return ret;}int main(){//freopen("in.txt","r",stdin);int T,M;scanf("%d",&T);while(T--){scanf("%d%d",&n,&M);for(int i = 0; i < n; i++){scanf("%d",num+i);}sort(num,num+n);init_hash();mat x = getmat();mat ret = q_pow(x, M-1);ll ans = 0; for (int i = 0; i < m; i++) for (int j = 0; j < m; j++) ans = (ans + ret.m[i][j]) % mod;printf("%I64d\n", ans);}return 0;}
0 0
- HDU 5318 The Goddess Of The Moon
- HDU 5318 The Goddess Of The Moon
- hdu 5318 The Goddess Of The Moon 矩阵快速幂
- hdu 5318 The Goddess Of The Moon 【矩阵快速幂】
- HDU 5318 The Goddess Of The Moon (矩阵快速幂)
- HDOJ 5318 The Goddess Of The Moon 矩阵快速幂
- hdu 5318 The Goddess Of The Moon(矩阵快速幂)
- hdu 5318 The Goddess Of The Moon 矩阵快速幂+dp
- HDU 5318 The Goddess Of The Moon(矩阵快速幂)
- hdu 5318 The Goddess Of The Moon (矩阵快速幂)
- 【多校第三场】【矩阵快速幂】 HDU 5318 The Goddess Of The Moon
- HDU 5318 The Goddess Of The Moon(递推+矩阵优化)
- HDU 5318 The Goddess Of The Moon(矩阵快速幂详解)
- hdu-5318 The Goddess Of The Moon(2015 Multi-University Training Contest 3)
- HDU 5318(The Goddess Of The Moon-矩阵乘法)[Template:矩阵]
- hdu 5318 The Goddess Of The Moon(矩阵二分幂优化dp)
- Hdu 5318 The Goddess Of The Moon (dp+矩阵快速幂)
- HDU 5318 The Goddess Of The Moon(矩阵快速幂)
- jenkins原有邮箱的设置测试通过
- SiteMesh在JSP中的页面装饰
- hdu 1010 Tempter of the Bone
- leetcode-198-House Robber
- VS2012 + EF6.x + MySql 开发环境搭建问题 --- 终结篇
- HDU 5318 The Goddess Of The Moon
- Jump Game II
- IOS XMPP引入时产生错误信息 “libxml/tree.h no such file or directory”
- 《C/C++/Java/Pascal 程序设计基础》习题集 解题1
- ios文件预览以及使用其他应用打开文件
- java获取本机公网IP
- PostgreSQL Concurrency with MVCC
- 说说mysql索引
- 记录 在表中 第几次出现