state:
dp[i][j] - can be 0 or 1, whether can reach city j at day i
transition:
dp[i][j]=1 if l[k][j]&&d[i-1][k], 1<=k<=n
for all city k, if there is a link between k and j, and he was there yesterday
then of course he can reach city j today
/* UVas */
/*****************************************************************************/
int C, L, S, E, D, t1, t2;
int l[101][101];
int d[201][101];
int main(void) {
while (cin>>C>>L&&C>0&&L>=0) {
memset(l, 0, sizeof(l));
for (int i=0; i<L; i++) {
cin>>t1>>t2;
l[t1][t2]=1;
l[t2][t1]=1;
}
cin>>S>>E>>D;
memset(d, 0, sizeof(d));
d[0][S]=1;
for (int i=1; i<=D; i++) {
for (int j=1; j<=C; j++) {
for (int k=1; k<=C; k++) {
if (l[k][j]&&d[i-1][k]) {
d[i][j]=1;
}
}
}
}
d[D][E]?cout<<"Yes, Teobaldo can travel.":cout<<"No, Teobaldo can not travel.";
cout<<endl;
}
return 0;
}
/*****************************************************************************/
No comments :
Post a Comment