快速矩阵幂ZOJ3497
来源:互联网 发布:excel从网页导入数据 编辑:程序博客网 时间:2024/06/05 23:56
题意:
起点是(0,0),终点是(M,N)
从起点出发,走一条长度为P的路径,路径中间点不能
经过终点(但可以反复经过其他点)。
到终点也到其它点 Maybe
只能到达终点 True
起点是(0,0),终点是(M,N)
从起点出发,走一条长度为P的路径,路径中间点不能
经过终点(但可以反复经过其他点)。
到终点也到其它点 Maybe
只能到达终点 True
不能到达终点 False
/*//////////////////////////////快速矩阵幂 ZOJ 3497//////////////////////////////*/#include <cstdio>#include <cstring>#include <cmath>int p;int x[10],y[10];struct Matrix{ int m[30][30];void clear(){memset(m,0,sizeof(m));}}E, Z;Matrix Mut(Matrix A, Matrix B){ Matrix ans; for (int i = 0; i<p; i++) for (int j = 0; j<p; j++) { ans.m[i][j] = 0; for (int k = 0; k<p; k++) {//利用 | 求解是否可达 ans.m[i][j]=(ans.m[i][j]| A.m[i][k]*B.m[k][j]); } } return ans;}Matrix Pow(Matrix A, int b){ Matrix t = A, ans = E; while (b) { if (b % 2) ans = Mut(ans, t); b /= 2; t = Mut(t, t); } return ans;}int main(){ // freopen("in.txt", "r", stdin);Matrix A;int t,n,m;char str[200];scanf("%d",&t);while(t--){scanf("%d %d",&n,&m);p=n*m;A.clear(); for(int i=0;i<n;i++) for(int j=0;j<m;j++) { scanf("%s",str);sscanf(str,"((%d,%d),(%d,%d),(%d,%d),(%d,%d))",&x[0],&y[0],&x[1],&y[1],&x[2],&y[2],&x[3],&y[3]); for(int k=0;k<4;k++) { x[k]--;y[k]--;A.m[i*m+j][m*x[k]+y[k]]=1; } }//调成终点不能达到其它点 for(int i=0;i<p;i++) A.m[p-1][i]=0;int que,u,h;scanf("%d",&que);while(que--){E=A;scanf("%d",&u);if(u==0){if(p==1)printf("True\n");else printf("False\n");continue;}Matrix ans=Pow(E,u-1);if(ans.m[0][p-1]==0)printf("False\n");else {for(h=0;h<p;h++)if(ans.m[0][h]==1)break;if(h==p-1)printf("True\n");else printf("Maybe\n");}}printf("\n");} return 0;}
0 0
- 快速矩阵幂ZOJ3497
- 链接矩阵快速幂(zoj3497)
- zoj3497 Mistwald (矩阵快速幂+图论)
- zoj3497
- 【矩阵乘法经典应用】【ZOJ3497】【Mistwa】
- 快速矩阵快速幂
- 转移矩阵+矩阵快速幂
- 矩阵乘法 矩阵快速幂
- 构造矩阵+矩阵快速幂
- 矩阵快速幂,矩阵加法,矩阵乘法
- 快速幂||矩阵快速幂
- 快速幂&矩阵快速幂
- 快速幂,矩阵快速幂
- 快速幂 矩阵快速幂
- 快速幂&矩阵快速幂
- 【快速幂】【矩阵快速幂】
- 快速幂和快速矩阵
- poj3070--矩阵 快速幂
- 如何判断ios设备中是否安装了某款应用
- Android的bitmap和优化
- 揍状钻鬃走自装字醉坐自钻庄卓醉砖锥鬃
- ConcurrentHashMap之实现细节
- iOS 文本转语音
- 快速矩阵幂ZOJ3497
- USB Mass Storage大容量存储的基本知识
- C语言及程序设计初步例程-32 输出小星星
- uiwebview didFailLoadWithError -999 error code
- Android特色开发之账户管理
- 数据库定义规范(可以借鉴,不是硬性标准)
- centos6下解决"ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.2.200' (113)"
- android 多线程2:thread
- MongoDB数据文件内部结构