已知矩阵乘法是n^3的,必然超时

故可以在需要验证的等式AB=C两边同时左乘D

一个1xN的任意的不含0矩阵

设E=DA,F=EB,G=DC,则此时只需验证F=G

当匹配到非法列J时,跳出n^2寻找行I即可

记录一下Ans,C[I,J]的正确值,然后就愉快地AC了

为了偷懒,我使用的矩阵是A~G连续编号的,所以可以放入数组,不喜勿喷!

 #include <cstdio>
typedef long long ll;
const int MAXN=;
struct Matrix{ll a[MAXN][MAXN];}A[];
void Mul(int a,int b,int c,int n,int p,int m){
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
for(int k=;k<=p;k++)
A[a].a[i][j]+=A[b].a[i][k]*A[c].a[k][j];
}
int main(){
int N,P,M;
while(scanf("%d%d%d",&N,&P,&M)!=EOF){
for(int i=;i<MAXN;i++)for(int j=;j<MAXN;j++)for(int k=;k<;k++)A[k].a[i][j]=;
for(int i=;i<=N;i++)for(int j=;j<=P;j++)scanf("%lld",&A[].a[i][j]);
for(int i=;i<=P;i++)for(int j=;j<=M;j++)scanf("%lld",&A[].a[i][j]);
for(int i=;i<=N;i++)for(int j=;j<=M;j++)scanf("%lld",&A[].a[i][j]);
for(int i=;i<=N;i++)A[].a[][i]=(i&)?:-;//这里可以乱写,233
Mul(,,,,N,P),Mul(,,,,P,M),Mul(,,,,N,M);
int flag=,I,J;ll Ans;
for(int i=;i<=M;i++)if(A[].a[][i]!=A[].a[][i]){J=i;flag=;break;}
if(flag){
for(int i=;i<=N;i++){
ll ans=;
for(int k=;k<=P;k++)ans+=A[].a[i][k]*A[].a[k][J];
if(ans!=A[].a[i][J]){Ans=ans,I=i;break;}
}
printf("No\n%d %d\n%lld\n",I,J,Ans);
}
else puts("Yes");
}
return ;
}

C++-POJ3213-PM3-[矩阵乘法]的更多相关文章

  1. *HDU2254 矩阵乘法

    奥运 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submissi ...

  2. *HDU 1757 矩阵乘法

    A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  3. CH Round #30 摆花[矩阵乘法]

    摆花 CH Round #30 - 清明欢乐赛 背景及描述 艺术馆门前将摆出许多花,一共有n个位置排成一排,每个位置可以摆花也可以不摆花.有些花如果摆在相邻的位置(隔着一个空的位置不算相邻),就不好看 ...

  4. POJ3070 Fibonacci[矩阵乘法]

    Fibonacci Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13677   Accepted: 9697 Descri ...

  5. bzoj 2738 矩阵乘法

    其实这题跟矩阵乘法没有任何卵关系,直接整体二分,用二维树状数组维护(刚刚学会>_<),复杂度好像有点爆炸(好像有十几亿不知道是不是算错了),但我们不能怂啊23333. #include&l ...

  6. 【BZOJ-2476】战场的数目 矩阵乘法 + 递推

    2476: 战场的数目 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 58  Solved: 38[Submit][Status][Discuss] D ...

  7. 【BZOJ-1898】Swamp 沼泽鳄鱼 矩阵乘法

    1898: [Zjoi2005]Swamp 沼泽鳄鱼 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1012  Solved: 566[Submit][S ...

  8. 【Codeforces718C】Sasha and Array 线段树 + 矩阵乘法

    C. Sasha and Array time limit per test:5 seconds memory limit per test:256 megabytes input:standard ...

  9. 矩阵乘法的MapReduce实现

    对于任意矩阵M和N,若矩阵M的列数等于矩阵N的行数,则记M和N的乘积为P=M*N,其中mik 记做矩阵M的第i行和第k列,nkj记做矩阵N的第k行和第j列,则矩阵P中,第i行第j列的元素可表示为公式( ...

  10. 矩阵乘法&矩阵快速幂&矩阵快速幂解决线性递推式

    矩阵乘法,顾名思义矩阵与矩阵相乘, 两矩阵可相乘的前提:第一个矩阵的行与第二个矩阵的列相等 相乘原则: a b     *     A B   =   a*A+b*C  a*c+b*D c d     ...

随机推荐

  1. C++ 解决列车重排问题

    问题节选自<<数据结构.算法与应用(C++语言描述)>>, 思路与代码为原创, 如有疏漏及问题欢迎指正 问题描述: 一辆列车有n节车厢, 车厢排列乱序(如: 284657139 ...

  2. JavaScript-状态模式

    状态模式 一个对象有状态变化 每次状态变化都会触发一个逻辑 不能总是用 if...else 来控制 示例:交通信号灯的不同颜色变化 传统的 UML 类图 javascript 中的 UML 类图 cl ...

  3. iOS开发 - 在SwiftUI中显示模态视图

    在SwiftUI中显示模态视图 简介 这里教大家如何弹出一个简单的模态视图.分别有两个页面,ContentView和GCPresentedView,以下对应简称为A和B.我们要做的是在A视图中点击按钮 ...

  4. 限制input输入框只能输入 数字

    <input type="text" oninput = "value=value.replace(/[^\d]/g,'')">

  5. java Reflection(反射)基础知识讲解

    原文链接:小ben马的java Reflection(反射)基础知识讲解 1.获取Class对象的方式 1.1)使用 "Class#forName" public static C ...

  6. Hibernate(六)--缓存策略

    缓存: 缓存就是数据库数据在内存中的临时容器,包括数据库数据在内存中的临时拷贝,它位于数据库与数据库访问中间层,ORM在查询数据时,首先会根据自身的缓存管理策略,在缓存中查找相关数据,如果发现所需的数 ...

  7. 一个最简单的Dockfile实践

    一:一个Dockerfile文件 FROM bash COPY . /usr/jinliang/ WORKDIR /usr/jinliang/ CMD [ "sh", " ...

  8. 【已解决2】pyinstaller UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xce in position 110: invalid continuation byte

    python打包exe解码错误问题       最近做了一个小项目,其中把自己写的python打包成exe文件.我用的是pyinstaller. 只需要打包主程序py文件就ok. 在打包过程中,遇到一 ...

  9. Charles老版本教程

    链接:http://pan.baidu.com/s/1c16PxEo  刮开有奖->密码:dbml 初级篇: 1.1设置代理 1.2参数设置+界面介绍 1.3屏蔽多余数据 1.4请求重发 1.5 ...

  10. springboot容器加载完毕执行某一个方法

    问题: 最近做项目(项目使用的是springboot)的时候,数据库有一个配置参数表,每次都要查询数据库去做数据转换,这样每次查询数据库感觉不太友好,后来写了一个方法项目启动完成后立即执行此方法,将配 ...