2016-06-01 17:33:30
題目大意:
給定兩個大小相同的正方形矩陣a,b.多次詢問,每次求乘後矩陣的乙個子矩陣所有元素的和.
解法:首先想到暴力.
預處理n^3,詢問模擬掃,這常數簡直瞬間**啊
當然是可以優化的.
列出子矩陣的元素表示式,就會發現有一些元素//矩陣乘法2 (codevs no.3147)
//矩陣乘法
#include
#include
using namespace std;
const int maxn=2010;
int map1[maxn][maxn];
int map2[maxn][maxn];
long long ans;
int n,m;
int a,b,c,d;
int main()
}for(int i=1;i<=n;i++)
}for(int i=1;i<=m;i++)
printf("%lld\n",ans);
}return 0;
}的乘積可以做乘法分配律
所以直接放棄求出子矩陣的確切值,按照分配律的特點組合資料.
我們對a(乘法的時候乘行)進行列字首和,對b(乘法的時候乘列)進行行字首和
最後所有元素的和就可以表示成sigma((a[i][dbound]-a[i][ubound-1])*(b[i][rbound]-b[i][lbound-1]));
(ubound,dbound,lbound,rbound表示小矩陣的上下左右)
1//矩陣乘法2 (codevs no.3147)2//
矩陣乘法
3 #include4 #include5
using
namespace
std;
6const
int maxn=2010;7
intmap1[maxn][maxn];
8int
map2[maxn][maxn];
9long
long
ans;
10int
n,m;
11int
a,b,c,d;
12int
main()
1322}23
for(int i=1;i<=n;i++)
2430}31
for(int i=1;i<=m;i++)
3241 printf("
%lld\n
",ans);42}
43return0;
44 }
矩陣乘矩陣
7 15 矩陣a乘以b 15分 給定兩個矩陣a和b,要求你計算它們的乘積矩陣ab。需要注意的是,只有規模匹配的矩陣才可以相乘。即若a有r a 行 c a 列,b有r b 行 c b 列,則只有c a 與r b 相等時,兩個矩陣才能相乘。輸入格式 輸入先後給出兩個矩陣a和b。對於每個矩陣,首先在一行中...
tensorflow點乘與矩陣乘
若 w 為 m 1 的矩陣,x 為 m n 的矩陣,那麼通過點乘結果就會得到乙個 mn 的矩陣。若 w 為 m n 的矩陣,x 為 m n 的矩陣,那麼通過點乘結果就會得到乙個 mn 的矩陣。w的列數只能為 1 或與x的列數相等 即n w的行數與x的行數相等 才能進行乘法運算。若 w 為 m p 的...
codevs3147 矩陣乘法 2 (推導小公式)
題目描述 description 給出兩個n n的矩陣,m次詢問它們的積中給定子矩陣的數值和。為防止卡評測,已減小資料範圍並調低時限。輸入描述 input description 第一行兩個正整數n,m。接下來n行,每行n個非負整數,表示第乙個矩陣。接下來n行,每行n個非負整數,表示第二個矩陣。接下...