[フロイドボード]羅区P1346

タイトル

ここに画像を挿入説明

トピックリンクします。https://www.luogu.com.cn/problem/P1346

コード

#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<cctype>
#include<ctime>
#include<iostream>
#include<string>
#include<map>
#include<queue>
#include<stack>
#include<set>
#include<vector>
#include<iomanip>
#include<list>
#include<bitset>
#include<sstream>
#include<fstream>
#include<complex>
#include<algorithm>
#if __cplusplus >= 201103L
#include <unordered_map>
#include <unordered_set>
#endif
#define ll long long
using namespace std;
const int INF = 0x3f3f3f3f;
int d[300][300];
int main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	int n,a,b;
	cin>>n>>a>>b;
	memset(d,INF,sizeof d);
	for(int i=1;i<=n;i++){
		int m;
		cin>>m;
		for(int j=1;j<=m;j++){
			int b;
			cin>>b;
			if(j==1) d[i][b]=0;
			else d[i][b]=1;
		}
	}
	for(int k=1;k<=n;k++){
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++){
				if(d[i][j]>d[i][k]+d[k][j]){
					d[i][j]=d[i][k]+d[k][j];
				}
			}
		}
	}
	if(d[a][b]==INF) cout<<"-1"<<endl;
	else cout<<d[a][b]<<endl;
    return 0;
}

公開された66元の記事 ウォンの賞賛1 ビュー3870

おすすめ

転載: blog.csdn.net/kosf_/article/details/104543397