warshall

来源:互联网 发布:pano.js 720全景图 编辑:程序博客网 时间:2024/06/07 16:17

n组测试数据,输入矩阵的行与列,之后输入矩阵中值为真的个数,之后是它们的位置

#include<stdio.h>

#include<string.h>
int matrix[101][101];
int l,s;
void warshall(int matrix[101][101],int l,int s)
{
int i,j,k;
for(i=1;i<=s;++i)
{
for(j=1;j<=l;++j)
{
if(matrix[j][i])
{
for(k=1;k<=s;++k)
matrix[j][k]=matrix[j][k]+matrix[i][k];
}
}
}
}
int main()
{
int i,j,a,b,n,m;
void warshall(int matrix[101][101],int l,int s);
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&l,&s);//矩阵的行与列
for(i=0;i<=l;++i)//矩阵初始化
   for(i=0;i<=s;++i)
       matrix[i][j]=0;
scanf("%d",&m);//矩阵中值为真的个数
while(m--)
{
scanf("%d%d",&a,&b);值为真的所在位置
matrix[a][b]=1;
}
warshall(matrix,l,s);
/* for(i=1;i<=l;++i)
{
for(j=1;j<=s;++j)
printf("%d ",matrix[i][j]);
printf("\n");
}*/
for(i=1;i<=l;++i)
{
for(j=1;j<=s;++j)
{
if(matrix[i][j])printf("<%d,%d> ",i,j);
}
printf("\n");
}
printf("\n");
}
return 0;
}
0 0