思路:

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. yarn架构——本质上是在做解耦 将资源分配和应用程序状态监控两个功能职责分离为RM和AM

    Hadoop YARN架构解读 原Mapreduce架构 原理架构图如下: 图 1.Hadoop 原 MapReduce 架构 原 MapReduce 程序的流程:首先用户程序 (JobClient) ...

  2. Docker运行程序报错 WARNING: IPv4 forwarding is disabled. Networking will not work

    WARNING: IPv4 forwarding is disabled. Networking will not work.   第一步:vi /usr/lib/sysctl.d/00-system ...

  3. Flask_URL和视图

    1.Flask_URL和视图 1.1.第一个flask程序   from flask import Flask #创建一个Flask对象,传递__name__参数进去 app = Flask(__na ...

  4. HTML-虚线框3例

    第一例: 代码 <HR style=> 第二例: 代码 <DIV style="BORDER-TOP: #00686b 1px dashed; OVERFLOW: hidd ...

  5. centos 出现的问题

    1.DNS问题,导致yum没得源 echo "nameserver 8.8.8.8">>/etc/resolv.conf 2.CentOS 7最小化安装后找不到‘ifc ...

  6. Unity3D基础

    鼠标事件: OnMouseEnter():鼠标进入 OnMouseExit():鼠标移出 OnMouseDown():鼠标点击 OnMouseUp():鼠标抬起 static GameObject I ...

  7. ThinkPHP5 (路径优化,路由)

    路径:www.tp5.comm/index.php/index/index/index 站点路径/入口文件/模块/控制器/方法 一.绑定模块 public下的php文件,如index.php,内部写 ...

  8. Tarjan 求图点强联通,桥的应用

    在图中求双联通和强联通分量是我们解决非树结构的图连通问题的利器 通过求求图的双联通和强联通分量能把图转化成DAG进行求解: 行走 Description 给出一个有向图,你可以选择从任意点出发走到任意 ...

  9. vue中使用Ueditor编辑器 -- 1

    一.   下载包: 从Ueditor的官网下载1.4.3.3jsp版本的Ueditor编辑器,官网地址为:http://ueditor.baidu.com/website/download.html ...

  10. JPush设置别名不走成功回调的解决办法

    在参考了极光推送的文档之后,对个推(单个推送)有设置别名的方法,方法如下 [JPUSHService setTags:tags alias:alias fetchCompletionHandle:^( ...