POJ 3213 矩阵乘法(优化)
思路:
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 矩阵乘法(优化)的更多相关文章
- [BZOJ 1009] [HNOI2008] GT考试 【AC自动机 + 矩阵乘法优化DP】
题目链接:BZOJ - 1009 题目分析 题目要求求出不包含给定字符串的长度为 n 的字符串的数量. 既然这样,应该就是 KMP + DP ,用 f[i][j] 表示长度为 i ,匹配到模式串第 j ...
- [转]OpenBLAS项目与矩阵乘法优化
课程内容 OpenBLAS项目介绍 矩阵乘法优化算法 一步步调优实现 以下为公开课完整视频,共64分钟: 以下为公开课内容的文字及 PPT 整理. 雷锋网的朋友们大家好,我是张先轶,今天主要介绍一下我 ...
- 【BZOJ 3326】[Scoi2013]数数 数位dp+矩阵乘法优化
挺好的数位dp……先说一下我个人的做法:经过观察,发现这题按照以往的思路从后往前递增,不怎么好推,然后我就大胆猜想,从前往后推,发现很好推啊,维护四个变量,从开始位置到现在有了i个数 f[i]:所有数 ...
- bzoj4870: [Shoi2017]组合数问题(DP+矩阵乘法优化)
为了1A我居然写了个暴力对拍... 那个式子本质上是求nk个数里选j个数,且j%k==r的方案数. 所以把组合数的递推式写出来f[i][j]=f[i-1][j]+f[i-1][(j-1+k)%k].. ...
- 形态形成场(矩阵乘法优化dp)
形态形成场(矩阵乘法优化dp) 短信中将会涉及前\(k\)种大写字母,每个大写字母都有一个对应的替换式\(Si\),替换式中只会出现大写字母和数字,比如\(A→BB,B→CC0,C→123\),代表 ...
- HDU 5863 cjj's string game (矩阵乘法优化递推)
题目大意:用k种字符构建两个长度为n的字符串(每种字符有无限多个),要求对应位置字符相同的连续子串最长长度为m,问方法数. 其中k,n,m是输入,n(1<=n<=1000000000), ...
- 斐波那契数列 矩阵乘法优化DP
斐波那契数列 矩阵乘法优化DP 求\(f(n) \%1000000007\),\(n\le 10^{18}\) 矩阵乘法:\(i\times k\)的矩阵\(A\)乘\(k\times j\)的矩 ...
- 洛谷2151[SDOI2009]HH去散步(dp+矩阵乘法优化)
一道良好的矩阵乘法优化\(dp\)的题. 首先,一个比较\(naive\)的想法. 我们定义\(dp[i][j]\)表示已经走了\(i\)步,当前在点\(j\)的方案数. 由于题目中限制了不能立即走之 ...
- 矩阵乘法优化DP复习
前言 最近做毒瘤做多了--联赛难度的东西也该复习复习了. Warning:本文较长,难度分界线在"中场休息"部分,如果只想看普及难度的可以从第五部分直接到注意事项qwq 文中用(比 ...
随机推荐
- springMVC、mybatis实现的登录页面(maven)
首先项目结构 pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:// ...
- SQL Server 计算汉字笔画函数
create function [dbo].[fun_getbh](@char nchar(2)) returns int as begin return( case when unicode(@ch ...
- 复杂一些的SQL语句
表连接查询得到结果集后添加数据 INSERT INTO #saleSplitProduct(saleorderID,ProductCode,ProductNum,ProductPrice, produ ...
- P3376 【模板】网络最大流(70)
题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行 ...
- Android GreenDao 使用教程
上一篇 总结了grendao 环境搭建以及简单的增删查改,接下来将全面解析框架的使用,基于上篇的orm模型(Note)数据库讲解 GreenDao的插入: 插入的方式有很多: daoSession.g ...
- (转载) listview实现微信朋友圈嵌套
listview实现微信朋友圈嵌套 标签: androidlistview 2016-01-06 00:05 572人阅读 评论(0) 收藏 举报 分类: android(8) 版权声明:本文为博 ...
- 【Paper Reading】Learning while Reading
Learning while Reading 不限于具体的书,只限于知识的宽度 这个系列集合了一周所学所看的精华,它们往往来自不只一本书 我们之所以将自然界分类,组织成各种概念,并按其分类,主要是因为 ...
- shell编程-1.字符截取命令-列截取cut
- Mac-O文件加载的全过程(一)
在Mac的开发中, 有没有想过当我们点击可执行文件之后,Mac究竟做了什么事情才让我们的程序运行起来? 对于应用层开发人员或者普通的用户而言, 其实无需知道的这么详细:但是对于内核开发人员而言, 如果 ...
- 10、Latent Relational Metric Learning via Memory-based Attention for Collaborative Ranking-----基于记忆注意的潜在关系度量协同排序
一.摘要: 本文模型 LRML(潜在相关度量学习)是一种新的度量学习方法的推荐.[旨在学习用户和项目之间的相关关系,而不是简单的用户和项目之间的push和pull关系,push和pull主要针对LMN ...