1 solutions
-
1
运算规则:将第一个矩阵的第i行的每个元素分别乘上第二个矩阵第j列的每个元素然后进项相加,得到的结果就为新矩阵的第i行第j列的元素。 代码:
#include <bits/stdc++.h> using namespace std; #define mod 1000000007 #define ll long long ll w[507][507],s[507][507];//不开long long见祖先 ll ans[507][507]; int main(){ int n,m,p; cin>>n>>m>>p; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>w[i][j];//输入 } } for(int i=1;i<=m;i++){ for(int j=1;j<=p;j++){ cin>>s[i][j];//输入 } } for(int i=1;i<=n;i++){ for(int j=1;j<=p;j++){ long long sum=0; for(int k=1;k<=m;k++){ sum=(sum%mod+w[i][k]*s[k][j]%mod)%mod;//对应相乘并取模 } if(sum<0)cout<<sum+mod<<" ";//负数加个模 else cout<<sum<<" "; } cout<<endl; } return 0; }
- 1
Information
- ID
- 89
- Time
- 2000ms
- Memory
- 256MiB
- Difficulty
- 7
- Tags
- # Submissions
- 330
- Accepted
- 71
- Uploaded By