zoj 2316 Matrix Multiplication

来源:互联网 发布:java微信支付接口demo 编辑:程序博客网 时间:2024/05/19 18:16


点击打开链接


题意: 

给你一个n*n的矩阵A,然后让你 求 A与 A 的转置矩阵的积。的矩阵所有元素和。


题解:

题中给的矩阵很特殊,他的转置矩阵和本身相同。

那么他们相乘其实就是, 每一行与包括自己的所有行相乘的和。

另外 x*x+y*y+2xy =(x+y)^2;

所以把每一列所有数加起来,求平方和就是答案。


#include<iostream>#include<cstdio>#include<cstring>using namespace std;int main(){long long n,m,a,b;long long p[205050];int T,ca=1;cin>>T;while(T--){if(ca!=1) puts("");ca++;scanf("%lld%lld",&n,&m);memset(p,0,sizeof(p));for(int i=0;i<m;i++){scanf("%lld%lld",&a,&b);if(a==b) p[a]++;else{p[a]++,p[b]++;}}long long ans=0;for(int i=0;i<205050;i++){if(p[i])ans+=(long long)(p[i]*p[i]);}printf("%lld\n",ans);}return 0;}


0 0
原创粉丝点击