思路:

1.暴力出奇迹 n=1000 n^3矩阵乘法竟然能卡过。。。(Tips:不要乱写读入优化,这玩意儿加了超时,不加AC……)

2.

注意题目中的“最多只能有一个地方不一样,,”

我就想到了 能不能用一行的和来优化一下。。一次算一行

我们可以手动模拟一下。。 发现了一个规律……

(本人的草稿纸…… 略乱)



我就模拟了一下答案的第一行。。

发现:

先统计一个sumb[i] +=a[i][j](1<=j<=M)

这个是B数组第i行前M个数的和

sumc[i]是C数组第i行的和

a[i][j]*sumb[j]应该等于sumc[i] (不信的话你可以手动模拟啊~)

这样子是n^2的复杂度

如果不等于sumc[i]的话 就做一遍一行的矩阵乘法就OK了。。

整体复杂度 O (n^2)

简单的矩阵乘法。。(是不是很短)

//By SiriusRen
#include <cstdio>
using namespace std;
#define s 1005
#define ff(x,y) for(int i=1;i<=x;i++)for(int j=1;j<=y;j++)
int N,P,M,a[s][s],b[s][s],c[s][s],ans[s][s];
int main(){
scanf("%d%d%d",&N,&P,&M);
ff(N,P)scanf("%d",&a[i][j]);
ff(P,M)scanf("%d",&b[i][j]);
ff(N,M)scanf("%d",&c[i][j]);
ff(N,M)for(int k=1;k<=P;k++)ans[i][j]+=a[i][k]*b[k][j];
ff(N,M)if(ans[i][j]!=c[i][j]){printf("No\n%d %d\n%d",i,j,ans[i][j]);return 0;}
printf("Yes");
}

这是加了优化的

//By SiriusRen
#include <cstdio>
using namespace std;
#define siz 1005
int N,P,M,a[siz][siz],b[siz][siz],c[siz][siz],jy[siz],sumb[siz],sumc[siz];
signed main(){
scanf("%d%d%d",&N,&P,&M);
for(int i=1;i<=N;i++)
for(int j=1;j<=P;j++)
scanf("%d",&a[i][j]);
for(int i=1;i<=P;i++)
for(int j=1;j<=M;j++){
scanf("%d",&b[i][j]);
if(j<=M)sumb[i]+=b[i][j];
}
for(int i=1;i<=N;i++)
for(int j=1;j<=M;j++)
scanf("%d",&c[i][j]),sumc[i]+=c[i][j];
for(int i=1;i<=N;i++){
int temp=0;
for(int j=1;j<=P;j++)
temp+=a[i][j]*sumb[j];
if(temp!=sumc[i]){
for(int j=1;j<=M;j++){
for(int k=1;k<=P;k++)
jy[j]+=a[i][k]*b[k][j];
if(jy[j]!=c[i][j])
printf("No\n%d %d\n%d",i,j,jy[j]);
}
return 0;
}
}
puts("Yes");
}

POJ 3213 矩阵乘法(优化)的更多相关文章

  1. [BZOJ 1009] [HNOI2008] GT考试 【AC自动机 + 矩阵乘法优化DP】

    题目链接:BZOJ - 1009 题目分析 题目要求求出不包含给定字符串的长度为 n 的字符串的数量. 既然这样,应该就是 KMP + DP ,用 f[i][j] 表示长度为 i ,匹配到模式串第 j ...

  2. [转]OpenBLAS项目与矩阵乘法优化

    课程内容 OpenBLAS项目介绍 矩阵乘法优化算法 一步步调优实现 以下为公开课完整视频,共64分钟: 以下为公开课内容的文字及 PPT 整理. 雷锋网的朋友们大家好,我是张先轶,今天主要介绍一下我 ...

  3. 【BZOJ 3326】[Scoi2013]数数 数位dp+矩阵乘法优化

    挺好的数位dp……先说一下我个人的做法:经过观察,发现这题按照以往的思路从后往前递增,不怎么好推,然后我就大胆猜想,从前往后推,发现很好推啊,维护四个变量,从开始位置到现在有了i个数 f[i]:所有数 ...

  4. bzoj4870: [Shoi2017]组合数问题(DP+矩阵乘法优化)

    为了1A我居然写了个暴力对拍... 那个式子本质上是求nk个数里选j个数,且j%k==r的方案数. 所以把组合数的递推式写出来f[i][j]=f[i-1][j]+f[i-1][(j-1+k)%k].. ...

  5. 形态形成场(矩阵乘法优化dp)

    形态形成场(矩阵乘法优化dp) 短信中将会涉及前\(k\)种大写字母,每个大写字母都有一个对应的替换式\(Si\),替换式中只会出现大写字母和数字,比如\(A→BB,B→CC0,C→123\),代表 ...

  6. HDU 5863 cjj's string game (矩阵乘法优化递推)

    题目大意:用k种字符构建两个长度为n的字符串(每种字符有无限多个),要求对应位置字符相同的连续子串最长长度为m,问方法数. 其中k,n,m是输入,n(1<=n<=1000000000), ...

  7. 斐波那契数列 矩阵乘法优化DP

    斐波那契数列 矩阵乘法优化DP 求\(f(n) \%1000000007​\),\(n\le 10^{18}​\) 矩阵乘法:\(i\times k\)的矩阵\(A\)乘\(k\times j\)的矩 ...

  8. 洛谷2151[SDOI2009]HH去散步(dp+矩阵乘法优化)

    一道良好的矩阵乘法优化\(dp\)的题. 首先,一个比较\(naive\)的想法. 我们定义\(dp[i][j]\)表示已经走了\(i\)步,当前在点\(j\)的方案数. 由于题目中限制了不能立即走之 ...

  9. 矩阵乘法优化DP复习

    前言 最近做毒瘤做多了--联赛难度的东西也该复习复习了. Warning:本文较长,难度分界线在"中场休息"部分,如果只想看普及难度的可以从第五部分直接到注意事项qwq 文中用(比 ...

随机推荐

  1. htmlunit 简单操作

    首先我们新建一个Maven普通客户端项目,然后打开pom.xml 引入htmlunit支持: <dependency> <groupId>net.sourceforge.htm ...

  2. Django开发之路 一(django安装并测试运行)

    安装Django与测试 1.虚拟环境的安装 一般来说Django的开发最好是在虚拟环境上进行,这样的好处是可以将不同的Django的项目的环境分割开来,相互不影响.比如说项目一用到Python2.x和 ...

  3. iOS开发者账号证书配置及相关工作

    申请到开发者账号,肯定要先配置一下才可以使用,这主要是iOS证书及配置文件: 以下这篇文章写得比较全面,故不再累赘,需要的同学可以看一下: iOS开发证书与配置文件的使用

  4. nsrunloop与模式

    scrollview的模式切换:退出原来的模式使用新模式. 2018-04-18 18:16:41.208113+0800 CEMonitor[5014:410604] kCFRunLoopDefau ...

  5. LeetCode Golang 2. 两数相加

    2. 两数相加 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链 ...

  6. 使用Eclipse将项目上传至远程GitLab

    一.先将项目提交至本地仓库 1.  右击项目——Team——Share Project… 2.在弹出框中,选择Git——Next 3.在弹出框中进行如下步骤操作 4.至此,我们已经成功创建了本地GIT ...

  7. HDU 5288 OO’s Sequence [数学]

     HDU 5288 OO’s Sequence http://acm.hdu.edu.cn/showproblem.php?pid=5288 OO has got a array A of size ...

  8. iOS开发——自动填充短信验证码

    苹果在iOS 12,改进了一个很人性化的小细节.在做短信验证码功能的时候,自动获取短信中的验证码,然后点击填充即可.不用再向之前那样麻烦,自己看到弹出的短信信息后,死记硬背,再一个个敲上去,害怕背错了 ...

  9. PHP内置SOAP扩展客户端的使用例子

    SOAP已经是属于OUT范畴的技术了,不过因为历史原因,时不时还是会用到它,以前都是用NuSOAP,现在准备试试PHP内置的SOAP扩展.由于文本只打算说说客户端的用法,所以得先找一些能直接用的服务端 ...

  10. 一些css布局

    # css布局 #---bootstrap   详情请看官方文档---首先要按照相应的官方规范引入相应的css js fonts等 container相当于一个容器 一般设置一个 接下来设置行 用ro ...