Problem Description
给出集合A,以及集合A上的关系R,求关系R的自反闭包。
Input
首先输入t,表示有t组数据.
每组数据第一行输入n,表示A中有n个数据,接下来一行输入n个数,(4 <= n < 100, 0 < Ai < 100)
第二行输入m,代表R中有m对关系(0 < m < 100)
接下来m行每行输入x,y代表< x,y >这对关系.(从小到大给出关系,如果x相同,按y排列)
Output
输出题目要求的关系集合,每行输出一对关系,输出顺序按照中的x大小非递减排列,假如x相等按照y大小非递减排列.
每组数据末尾额外输出一行空行。
Example Input
1 5 1 2 3 4 5 6 1 1 1 2 2 3 3 3 4 5 5 1
Example Output
1 1 1 2 2 2 2 3 3 3 4 4 4 5 5 1 5 5
code:
#include<stdio.h>
#include<string.h>
int main()
{
int a[120], b[120][120];
int t, n, m, i, j, x, y;
scanf("%d", &t);
while(t--)
{
memset(b, 0, sizeof(b));
scanf("%d", &n);
for(i = 0;i<n;i++)
{
scanf("%d", &a[i]);
}
scanf("%d", &m);
for(i = 0;i<m;i++)
{
scanf("%d%d", &x, &y);
b[x][y] = 1;
}
for(i = 0;i<n;i++)
{
b[a[i]][a[i]] = 1;
}
for(i = 0;i<110;i++)
{
for(j = 0;j<110;j++)
{
if(b[i][j] == 1)
{
printf("%d %d\n", i, j);
}
}
}
printf("\n");
}
}
5184

被折叠的 条评论
为什么被折叠?



