一定要这么写
int res=0; for(int i=1;i<=n;i++) if(e[i].y==B) res=(res+f[i])%p; cout<<res;
不能这么写
int res=0; for(int i=1;i<=n;i++) if(e[i].x==B) res=(res+f[i])%p; cout<<res;
不要以为t不变,最后求e[i].x==B就行了,t步以后,到达点已经从B转移到e[i].y了。