BIT 1092 Matrix Multiplication
来源:互联网 发布:c 九九乘法表代码 VB 编辑:程序博客网 时间:2024/05/01 23:05
题目大意:给出两个n*n的矩阵A,B(n<500),再给出一个矩阵C,问A*B是否等于C,数据保证不用高精度。。。。
考察点:??
思路分析:如果暴力算的话,两个n*n的矩阵要用n^3的复杂度,肯定超时。
若AB=C,那么XAB=XC,这样的话我们可以构造一个行向量X,X(1*N),这样的话N^3的复杂度就降到N^2了
#include<stdio.h>long long n;long long a[510][510],b[510][510],c[510][510];long long temp[510],temp1[510],temp2[510];int main(){ int i,j; while(scanf("%d",&n)!=EOF) { memset(temp,0,sizeof(temp)); memset(temp1,0,sizeof(temp1)); memset(temp2,0,sizeof(temp2)); for (i=1;i<=n;i++) for (j=1;j<=n;j++) scanf("%lld",&a[i][j]); for (i=1;i<=n;i++) for (j=1;j<=n;j++) scanf("%lld",&b[i][j]); for (i=1;i<=n;i++) for (j=1;j<=n;j++) scanf("%lld",&c[i][j]); for (i=1;i<=n;i++) temp[i]=i; for (i=1;i<=n;i++) for (j=1;j<=n;j++) temp1[i]+=temp[j]*a[j][i]; for (i=1;i<=n;i++) for (j=1;j<=n;j++) temp2[i]+=temp1[j]*b[j][i]; memset(temp1,0,sizeof(temp1)); for (i=1;i<=n;i++) for (j=1;j<=n;j++) temp1[i]+=temp[j]*c[j][i]; for (i=1;i<=n;i++) { if (temp1[i]!=temp2[i]) {printf("NO\n");break;} if (i==n) printf("YES\n"); } } return 0;}
- BIT 1092 Matrix Multiplication
- Matrix Multiplication
- Matrix Multiplication
- Matrix Multiplication
- Matrix Multiplication
- Matrix multiplication
- Matrix multiplication
- Matrix Chain Multiplication
- zoj1094 Matrix Chain Multiplication
- Matrix chain multiplication problem
- POJ 3318 Matrix Multiplication
- Matrix Chain Multiplication
- uva442 Matrix Chain Multiplication
- 3712. Matrix multiplication
- 442 - Matrix Chain Multiplication***
- poj Matrix Chain Multiplication
- poj 2890 Matrix Multiplication
- 442 - Matrix Chain Multiplication
- 消息队列软件产品大比拼
- ANSYS时间的作用
- 8086汇编指令
- log4j简单配置
- android UI布局优化的常用工具
- BIT 1092 Matrix Multiplication
- JVM内存设置
- Uboot Stage1详解
- Jongo
- linux进程创建过程与原理
- vb.net是怎么实现的
- String中intern的方法
- zend 9 快捷键 转
- C Self-study Log