已知矩阵乘法是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. Linux运维---1.磁盘相关知识

    一 磁盘物理结构 (1) 盘片:硬盘的盘体由多个盘片叠在一起构成. 在硬盘出厂时,由硬盘生产商完成了低级格式化(物理格式化),作用是将空白的盘片(Platter)划分为一个个同圆心.不同半径的磁道(T ...

  2. PyQt5官方教程+帮助文档+模块功能汇总

    写在开头 笔者自学PyQt5的过程中,在网上发现了不少友好的新手入门教程,比如: Archi的博客 PyQt5图形界面编程 但是学习PyQt5的最好方法是阅读官方文档 + 自己动手实践,笔者将分享官网 ...

  3. mysql添加索引(建表之后)

    一.使用ALTER TABLE语句创建索引 语法如下: alter table table_name add index index_name (column_list) ; alter table ...

  4. 如何实现广告响应式滚动 OwlCarousel2

    githu    https://github.com/OwlCarousel2/OwlCarousel2 OwlCarousel2 官方网址    http://owlcarousel2.githu ...

  5. 在ServletFilter层返回多字段提示给前端

    0.背景:在由于不想在小项目中引入SpringSecurity这种重量级安全框架,我自定义了一个LoginFilter来处理认证+授权逻辑.对于认证或授权失败的情况,最初是在filter中抛出异常,并 ...

  6. mysql基础(附具体操作代码)

    # 注释内容 -- 注释内容 -- 创建数据库 king CREATE DATABASE king; -- 查看当前服务器下有哪些数据库 SHOW DATABASES; SHOW SCHEMAS; - ...

  7. iMacros 入门教程-内置变量介绍(5)

    iMacros 的变量类型 1.!VAR0 到 !VAR9,这是系统定义的内置变量,专门给你赋值用 就是程序设定了这几个名字给你赋值 2.内建变量 就是 imacros 设定的特别作用的变量,例如 ! ...

  8. 吴裕雄--天生自然 R语言数据可视化绘图(3)

    par(ask=TRUE) opar <- par(no.readonly=TRUE) # record current settings # Listing 11.1 - A scatter ...

  9. 吴裕雄--天生自然 R语言数据可视化绘图(1)

    par(ask=TRUE) opar <- par(no.readonly=TRUE) # make a copy of current settings attach(mtcars) # be ...

  10. Java自学-Lambda 聚合操作

    java 集合的聚合操作 步骤 1 : 传统方式与聚合操作方式遍历数据 遍历数据的传统方式就是使用for循环,然后条件判断,最后打印出满足条件的数据 for (Hero h : heros) { if ...