hdu 2604 Queuing(状态压缩递推,矩阵)
来源:互联网 发布:仿牌外贸seo 编辑:程序博客网 时间:2024/05/29 01:54
hdu 2604 Queuing
和这题一样
#include<stdio.h>#include<string.h>struct matrix{ int m[4][4];};int mod;matrix multi(const matrix &a,const matrix &b){ matrix ans; memset(&ans,0,sizeof(ans)); for(int i=0;i<4;i++) for(int k=0;k<4;k++) if(a.m[i][k]) { for(int j=0;j<4;j++) { ans.m[i][j]+=a.m[i][k]*b.m[k][j]; ans.m[i][j]%=mod; } } return ans;}matrix pow(matrix a,int k){ matrix ans; memset(&ans,0,sizeof(ans)); for(int i=0;i<4;i++) ans.m[i][i]=1; while(k) { if(k&1) ans=multi(ans,a); a=multi(a,a); k>>=1; } return ans;}int main(){ matrix a; int n; while(scanf("%d%d",&n,&mod)!=EOF) { if(n<=2) { printf("%d\n",1<<n); continue; } memset(&a,0,sizeof(a)); a.m[0][0]=a.m[0][1]=1; a.m[1][2]=a.m[1][3]=1; a.m[2][0]=1; a.m[3][2]=1; a=pow(a,n-2); int ans=0; for(int i=0;i<4;i++) for(int j=0;j<4;j++) { ans+=a.m[i][j]; ans%=mod; } printf("%d\n",ans); } return 0;}
0 0
- hdu 2604 Queuing(状态压缩递推,矩阵)
- hdu 2604 Queuing(矩阵乘法+递推)
- hdu 2604 Queuing(矩阵优化递推公式)
- HDU 2604-Queuing(递推+矩阵快速幂)
- HDU 2604 Queuing (递推+矩阵快速幂)
- hdu 2604 Queuing 递推+矩阵快速幂
- hdu 2604 Queuing【递推+矩阵快速幂】
- HDU 2604 Queuing [递推]【矩阵快速幂】
- HDU 2604-Queuing(递推+构造矩阵)
- HDU 2604 Queuing (递推+ 矩阵快速幂)
- HDU 2604 Queuing 递推
- HDU 2604 Queuing 递推
- 【hdu 4062】Queuing 【思维+递推+矩阵快速幂】
- hdu 2604 Queuing 矩阵
- hdu 2604 Queuing 矩阵
- hdu 2604 Queuing 递推/DP 矩阵快速幂 Trie数辅助
- 【HDU】2604 - Queuing(递推 & 思维 & 矩阵构造 & 快速幂)
- HDOJ 2604 Queuing (递推+矩阵快速幂)
- 面试题集锦C++解答4
- Android多线程任务优化1:探讨AsyncTask的缺陷
- CListCtrl
- Windows下C语言环境搭建VIM+GCC+CTAGS
- 图片压缩
- hdu 2604 Queuing(状态压缩递推,矩阵)
- 由LeetCode想到算法中的<横向思维和纵向思维>:
- 不要通过Application Object或者其他全局静态变量来存放数据
- GUI图形用户界面开发助手Prof-UIS
- Android PopupWindow做的分享界面
- perl学习笔记
- iis 值不在预期的范围错误解决办法
- hdu1879(最小生成树)
- spi协议及工作原理分析