标签:print scan [] include color top queue std str
1 #include <cstdio> 2 #include <cmath> 3 #include <cstring> 4 #include <algorithm> 5 #include <queue> 6 #include <stack> 7 #include <vector> 8 #include <iomanip> 9 using namespace std; 10 int n,s,t,d[150]; 11 vector<pair<int,int> >e[150]; 12 int main(int argc, char *argv[]) 13 { 14 scanf("%d%d%d",&n,&s,&t); 15 for(int i=1;i<=n;i++) 16 { 17 int m; 18 scanf("%d",&m); 19 for(int j=0;j<m;j++) 20 { 21 int k; 22 scanf("%d",&k); 23 if(j!=0) 24 e[i].push_back(make_pair(k,1)); 25 else 26 e[i].push_back(make_pair(k,0)); 27 } 28 } 29 memset(d,0x3f3f3f3f,sizeof(d)); 30 d[s]=0; 31 priority_queue<pair<int,int> >q; 32 q.push(make_pair(-d[s],s)); 33 while(!q.empty()) 34 { 35 int now=q.top().second;q.pop(); 36 for(int i=0;i<e[now].size();i++) 37 { 38 int v=e[now][i].first; 39 if(d[v]>d[now]+e[now][i].second) 40 { 41 d[v]=d[now]+e[now][i].second; 42 q.push(make_pair(-d[v],v)); 43 } 44 45 } 46 } 47 if(d[t]==0x3f3f3f3f) 48 printf("-1\n"); 49 else 50 printf("%d\n",d[t]); 51 return 0; 52 }
标签:print scan [] include color top queue std str
原文地址:https://www.cnblogs.com/huluxin/p/9807257.html