【蓝桥杯】ALGO-48关联矩阵点 x 边

tech2026-04-18  0

资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述   有一个n个结点m条边的有向图,请输出他的关联矩阵。 输入格式   第一行两个整数n、m,表示图中结点和边的数目。n<=100,m<=1000。   接下来m行,每行两个整数a、b,表示图中有(a,b)边。   注意图中可能含有重边,但不会有自环。 输出格式   输出该图的关联矩阵,注意请勿改变边和结点的顺序。 样例输入 5 9 1 2 3 1 1 5 2 5 2 3 2 3 3 2 4 3 5 4 样例输出 1 -1 1 0 0 0 0 0 0 -1 0 0 1 1 1 -1 0 0 0 1 0 0 -1 -1 1 -1 0 0 0 0 0 0 0 0 1 -1 0 0 -1 -1 0 0 0 0 1

#include<stdio.h> #include<iostream> #include<math.h> #include<string.h> #include<algorithm> #include<functional> using namespace std; const int inf = 0x3f3f3f3f; const double pi = acos(-1); typedef long long ll; //ALGO-48 关联矩阵 int g[107][1007]; int main() { int n, m, v1, v2; scanf("%d%d", &n, &m); for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++) g[i][j] = 0; for(int i = 1; i <= m; i++) { scanf("%d%d", &v1, &v2); g[v1][i] = 1; g[v2][i] = -1; } for(int i = 1; i <= n; i++) { for(int j = 1; j <= m; j++) { if(g[i][j] == -1) printf("%d ", g[i][j]); else printf(" %d ", g[i][j]); } printf("\n"); } return 0; }

【注】太坑了,不是-1的时候要在前面多输出一个空格补齐!! 关于关联矩阵看一下这篇博客

最新回复(0)