2014北京邀请赛 E Elegant String bunoj 34985 矩阵快速幂
来源:互联网 发布:js图片上传插件 编辑:程序博客网 时间:2024/06/05 09:08
http://blog.csdn.net/tobewhatyouwanttobe/article/details/39697215
当k==5时,
【k+1,0,0,0,0】*A^(n-1)=【a,b,c,d,e】
a+b+c+d+e即为结果;
A:
1 5 0 0 0
1 1 4 0 0
1 1 1 3 0
1 1 1 1 2
1 1 1 1 1
#include<stdio.h> #include<string.h> #include<math.h> #include<stdlib.h> #include<iostream> #include<algorithm> #include<queue> #include<vector> #include<set> #include<map> #include<string> using namespace std; #define ll long longconst int inf = 0x3f3f3f3f; const ll mod=20140518;struct node{ll a[11][11];}T,I;int k;node multi(node A,node B){int i,j,l;node C;memset(C.a,0,sizeof(C.a));for(i=0;i<k;i++)for(j=0;j<k;j++){for(l=0;l<k;l++){C.a[i][j]+=A.a[i][l]*B.a[l][j];C.a[i][j]%=mod;}C.a[i][j]=(C.a[i][j]+mod)%mod;}return C;}int main(){int t;scanf("%d",&t);int res=0;while(t--){res++;ll n;int i,j;cin>>n>>k;if(n==1){printf("Case #%d: %lld\n",res,(k+1));continue;}n--;for(i=0;i<k;i++)for(j=0;j<k;j++)if(i==j) I.a[i][j]=1;else I.a[i][j]=0;for(i=0;i<k;i++)for(j=0;j<k;j++){if(i>=j) T.a[i][j]=1;else if(i+1==j) T.a[i][j]=k-i;else T.a[i][j]=0;}while(n){if(n&1) I=multi(I,T);n>>=1;T=multi(T,T);}ll ans=0;for(i=0;i<k;i++){ans+=I.a[0][i];ans%=mod;}ans=ans*(k+1)%mod;printf("Case #%d: %lld\n",res,ans);}}
0 0
- 2014北京邀请赛 E Elegant String bunoj 34985 矩阵快速幂
- BNUOJ 34985 Elegant String 2014北京邀请赛E题 矩阵快速幂
- bnuoj34985 Elegant String 2014北京邀请赛E 递推+矩阵快速幂
- BNUOJ 34985 北京邀请赛 E题 Elegant String dp & 矩阵
- 2014北京邀请赛E题_BNU_44673_Elegant String(DP+矩阵快速幂)
- 2014北京邀请赛E题-矩阵快速幂
- 2014北京邀请赛E题-矩阵快速幂
- bnuoj 34985 Elegant String dp+矩阵快速幂
- bnu 34895 Elegant String(矩阵快速幂)
- 2014年北京邀请赛 E题 矩阵+dp
- bnu 34985 Elegant String(矩阵快速幂+dp推导公式)
- E. Elegant String
- 2014 BNU 邀请赛E题(递推+矩阵快速幂)
- BNUOJ 34985 Elegant String DP+矩阵优化
- bnu oj 34985 Elegant String (矩阵+dp)
- BNU 34985 Elegant String
- bnu- 34985 Elegant String
- 湘潭邀请赛 A题 矩阵快速幂
- nyoj206矩形的个数
- android MotionEvent中getX()和getRawX()的区别
- POJ 3723 MST(建军队的最小花费)
- 快捷键让SublimeText在编文件快速在浏览器打开
- hibernate配置二级缓存
- 2014北京邀请赛 E Elegant String bunoj 34985 矩阵快速幂
- 实现字符串和整数的相互转换
- 堆栈溢出 c++
- 【Java.Web】Servlet —— 访问同一个Servlet容器中的其他Web应用
- Python:使用suite执行unit-test用例
- ASP.NET单点登录 TOKEN的使用
- Sublime Text 2 快捷键用法大全(转)
- python调用shell脚本的方法
- mac 配置adb到命令行中