sicily 1211. 商人的宣传

#include<iostream> //矩阵乘法,求从A到B的路线总数
#include<cstring>
using namespace std;
int table[102][102],path[102][102],ans[102][102];
int n,m,L,t,x,y,A,B;
int main()
{
cin
>>n>>m>>L;
while(m--)
{
cin
>>x>>y;
table[x][y]
=1;
path[x][y]
=1;
}
while(--L) //循环L-1次
{
memcpy(ans,path,
sizeof(path));
memset(path,
0,sizeof(path));
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
for(int k=1;k<=n;++k)
path[i][j]
+=table[i][k]*ans[k][j]; //path[i][j]+=ans[i][k]*table[k][j];
}
cin
>>t;
while(t--)
{
cin
>>A>>B;
cout
<<path[A][B]<<endl;
}
return 0;
}

posted on 2011-07-05 02:02  sysu_mjc  阅读(262)  评论(0编辑  收藏  举报

导航