代码改变世界

1211. 商人的宣传

2011-04-23 14:04  Min·zc  阅读(207)  评论(0编辑  收藏  举报

开始用BFS超时了。看了一下书,换了DP但是也不是很快,跑了0.38

---------------------------------------------------------------------------------------------------------

 1 #include <iostream>
 2 #include <queue>
 3 #include <memory.h>
 4 using namespace std;
 5 int road[110][110];
 6 long long tem[110][110];
 7 int n,m,l;
 8 int A,B;
 9 struct STA
10 {
11         int d;
12         int n;
13 };
14 void ini()
15 {
16         memset(road,0,sizeof(road));
17         cin>>n>>m>>l;
18         for(int i=0;i<m;i++)
19         {
20                 int a,b;
21                 cin>>a>>b;
22                 road[a][b]=1;
23         }
24         
25 }
26 long long dp()
27 {
28         memset(tem,0,sizeof(tem));
29         tem[0][A]=1;
30         for(int i=1;i<=l;i++)
31                 for(int j=1;j<=n;j++)
32                         for(int k=1;k<=n;k++)
33                                 if(road[k][j]==1)
34                                         tem[i][j]+=tem[i-1][k];
35 
36         return tem[l][B];
37 }
38 int main()
39 {
40         ini();
41         int k;
42         cin>>k;
43         while(k--)
44         {
45                 cin>>A>>B;
46                 cout<<dp()<<endl;
47         }
48 }