无向图的一道例题
输出c到d长度为以下长度的路径条数:
源代码
#include<stdio.h>
int mult(int a[6][6],int b[6][6],int c[6][6])
{
int i,j,k;
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
c[i][j]=0;
}
}
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
for(k=0;k<6;k++)
{
c[i][j]+=a[i][k]*b[k][j];
}
}
}
}
int main()
{
int a[6][6]={{0,1,0,1,1,0},{1,0,1,0,1,1},{0,1,0,1,0,1},{1,0,1,0,1,0},{1,1,0,1,0,1},{0,1,1,0,1,0}},b[6][6]={{0,1,0,1,1,0},{1,0,1,0,1,1},{0,1,0,1,0,1},{1,0,1,0,1,0},{1,1,0,1,0,1},{0,1,1,0,1,0}};
int c[6][6]={0},d[6][6]={0},i,j,k=6;
while(k--)
{
mult(a,b,c);
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
b[i][j]=c[i][j];
}
}
printf("%d\n",c[2][3]);
}
}
有向图的一道例题
输出a到e长度为以下长度的路径条数:
源代码
#include<stdio.h>
int mult(int a[5][5],int b[5][5],int c[5][5])
{
int i,j,k;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
c[i][j]=0;
}
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
for(k=0;k<5;k++)
{
c[i][j]+=a[i][k]*b[k][j];
}
}
}
}
int main()
{
int a[5][5]={{0,1,0,1,0},{1,0,0,0,1},{0,1,0,0,0},{1,0,0,0,0},{0,0,1,1,0}},b[5][5]={{0,1,0,1,0},{1,0,0,0,1},{0,1,0,0,0},{1,0,0,0,0},{0,0,1,1,0}};
int c[5][5]={0},d[5][5]={0},i,j,k=6;
while(k--)
{
mult(a,b,c);
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
b[i][j]=c[i][j];
}
}
printf("%d\n",c[0][4]);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)