标签:acdream 关联矩阵 矩阵的乘法 matrix 数学
题目链接:http://acdream.info/problem?pid=1213
涉及的数学知识较多,包括矩阵的转置,矩阵的乘法,关联矩阵.....
刚开始是直接按照各个概念做的,结果MLE了,MLE代码如下
#include<cstdio> #include<iostream> #include<sstream> #include<cstdlib> #include<cstring> #include<string> #include<climits> #include<cmath> #include<algorithm> #include<queue> #include<vector> #include<stack> #include<set> #include<map> using namespace std; int n,m; int a[10005][5],v[10005][10005],v1[10005][10005]; int main() { int i,j; while(~scanf("%d%d",&n,&m)) { memset(v,0,sizeof(v)); memset(v1,0,sizeof(v1)); for(i=0;i<m;i++) for(j=0;j<2;j++) scanf("%d",&a[i][j]); for(i=0;i<m;i++) v[a[i][0]-1][a[i][1]-1]=v[a[i][1]-1][a[i][0]-1]=1; for(i=0;i<n;i++) for(j=0;j<m;j++) v1[j][i]=v[i][j]; int sum=0,b=0,k=m; while(k--) { for(i=0;i<n;i++) { int c=0; for(j=0;j<m;j++) { sum+=v[b][c++]*v1[j][i]; } } b++; } printf("%d\n",sum); } return 0; }
#include<cstdio> #include<iostream> #include<sstream> #include<cstdlib> #include<cstring> #include<string> #include<climits> #include<cmath> #include<algorithm> #include<queue> #include<vector> #include<stack> #include<set> #include<map> using namespace std; int n,m; int a[100005]; int main() { int i,j; while(~scanf("%d%d",&n,&m)) { int u,v; memset(a,0,sizeof(v)); for(i=1; i<=m; i++) { scanf("%d%d",&u,&v); a[u]++; a[v]++; } long long sum=0; for(i=1; i<=n; i++) sum+=a[i]*a[i]; printf("%lld\n",sum); } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
ACdream 1213 Matrix Multiplication(矩阵乘法)
标签:acdream 关联矩阵 矩阵的乘法 matrix 数学
原文地址:http://blog.csdn.net/qq_30076791/article/details/47983377