C++-POJ3213-PM3-[矩阵乘法]
已知矩阵乘法是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-[矩阵乘法]的更多相关文章
- *HDU2254 矩阵乘法
奥运 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submissi ...
- *HDU 1757 矩阵乘法
A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- CH Round #30 摆花[矩阵乘法]
摆花 CH Round #30 - 清明欢乐赛 背景及描述 艺术馆门前将摆出许多花,一共有n个位置排成一排,每个位置可以摆花也可以不摆花.有些花如果摆在相邻的位置(隔着一个空的位置不算相邻),就不好看 ...
- POJ3070 Fibonacci[矩阵乘法]
Fibonacci Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13677 Accepted: 9697 Descri ...
- bzoj 2738 矩阵乘法
其实这题跟矩阵乘法没有任何卵关系,直接整体二分,用二维树状数组维护(刚刚学会>_<),复杂度好像有点爆炸(好像有十几亿不知道是不是算错了),但我们不能怂啊23333. #include&l ...
- 【BZOJ-2476】战场的数目 矩阵乘法 + 递推
2476: 战场的数目 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 58 Solved: 38[Submit][Status][Discuss] D ...
- 【BZOJ-1898】Swamp 沼泽鳄鱼 矩阵乘法
1898: [Zjoi2005]Swamp 沼泽鳄鱼 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1012 Solved: 566[Submit][S ...
- 【Codeforces718C】Sasha and Array 线段树 + 矩阵乘法
C. Sasha and Array time limit per test:5 seconds memory limit per test:256 megabytes input:standard ...
- 矩阵乘法的MapReduce实现
对于任意矩阵M和N,若矩阵M的列数等于矩阵N的行数,则记M和N的乘积为P=M*N,其中mik 记做矩阵M的第i行和第k列,nkj记做矩阵N的第k行和第j列,则矩阵P中,第i行第j列的元素可表示为公式( ...
- 矩阵乘法&矩阵快速幂&矩阵快速幂解决线性递推式
矩阵乘法,顾名思义矩阵与矩阵相乘, 两矩阵可相乘的前提:第一个矩阵的行与第二个矩阵的列相等 相乘原则: a b * A B = a*A+b*C a*c+b*D c d ...
随机推荐
- Leetcode:面试题 04.03. 特定深度节点链表
Leetcode:面试题 04.03. 特定深度节点链表 Leetcode:面试题 04.03. 特定深度节点链表 先贴一下自己写过一个模板,按层数遍历: https://www.cnblogs.co ...
- OpenCV3入门(十)图像轮廓
1.图像轮廓 1.1图像轮廓与API函数 轮廓是一系列相连的点组成的曲线,代表了物体的基本外形,相对于边缘,轮廓是连续的,边缘并不全部连续.一般地,获取图像轮廓要经过下面几个步骤: 1) 读取 ...
- 手把手教你快速使用数据可视化BI软件创建互联网用户数据分析大屏
灯果数据可视化BI软件是新一代人工智能数据可视化大屏软件,内置丰富的大屏模板,可视化编辑操作,无需任何经验就可以创建属于你自己的大屏.大家可以在他们的官网下载软件. 本文以互联网用户数据分析大屏为 ...
- C# NewtonJson Serialize and deserialize
using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using Sys ...
- 简化MVVM属性设置和修改 - .NET CORE(C#) WPF开发
微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏. 简化MVVM属性设置和修改 - .NET CORE(C#) WPF开发 阅读导航 常用类属性设 ...
- wow.js wow.min.js animate.css animate.min.css
奉献给下载不到源码的小伙伴,下载到的请忽视 wow.js (function() { var MutationObserver, Util, WeakMap, getComputedStyle, ge ...
- iOS 开发技术栈与进阶
最近有一些开发朋友问我应该怎样提升自己的能力,回想起来做了这么久 iOS 开发,我也有过那种“让我做一个功能实现个需求我会做,但接下来怎样提高我不知道.”的时期,这里尝试列一下 iOS 开发的相关技术 ...
- 离散对数及其拓展 大步小步算法 BSGS
离散对数及其拓展 离散对数是在群Zp∗Z_{p}^{*}Zp∗而言的,其中ppp是素数.即在在群Zp∗Z_{p}^{*}Zp∗内,aaa是生成元,求关于xxx的方程ax=ba^x=bax=b的解, ...
- java设计模式学习笔记--浅谈设计模式
设计模式的目的 编写软件的过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战.设计模式为了让程序具有更好的 1.代码重用性(即:相同功能的代码,不用多次编写) ...
- jQuery---钢琴案例 (按下1-9数字键,能触发对应的mouseenter事件)
钢琴案例 (按下1-9数字键,能触发对应的mouseenter事件) 1. 结合之前的学习,主要内容,就是on注册keyup事件,函数里传入e, 用e.keyCode,来获取1-9的数字的范围. 如果 ...