记录详情

Accepted

/in/foo.cc: In function 'int main()':
/in/foo.cc:27:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i=0;i<e2[no].size();i++){
               ~^~~~~~~~~~~~~~
/in/foo.cc:38:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(int j=0;j<e1[i].size();j++){
                ~^~~~~~~~~~~~~
/in/foo.cc:58:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i=0;i<e1[no].size();i++){
               ~^~~~~~~~~~~~~~
# 状态 耗时 内存占用
#1 Accepted 2ms 732.0 KiB
#2 Accepted 2ms 728.0 KiB
#3 Accepted 2ms 744.0 KiB
#4 Accepted 2ms 736.0 KiB
#5 Accepted 2ms 740.0 KiB
#6 Accepted 2ms 728.0 KiB
#7 Accepted 3ms 868.0 KiB
#8 Accepted 13ms 1.535 MiB
#9 Accepted 5ms 1.207 MiB
#10 Accepted 47ms 3.777 MiB

代码

#include<bits/stdc++.h>
using namespace std;
int n,m,s,t;
inline int read(){
	int x=0,f=1;char c=getchar();
	while(c<'0') f^=(c=='-'),c=getchar();
	while(c>'/') x=(x<<3)+(x<<1)+(c^'0'),c=getchar();
	return f?x:-x;
}
vector<int>e1[10010],e2[10010];  
int bo[10010],vs[10010],ir[10010];
int main(){
	n=read();m=read();
	for(int i=1;i<=m;i++){
	 int u=read(),v=read();
	 e1[u].push_back(v);
	 e2[v].push_back(u);	
	}
	queue<int> q1; 
	s=read();
	t=read();
	bo[t]=1;
	q1.push(t);
	while(!q1.empty()){
		int no=q1.front();
		q1.pop();
		for(int i=0;i<e2[no].size();i++){
			int to=e2[no][i];
			if(!bo[to]){
				q1.push(to);
				bo[to]=1;
			}
		}
	}
	for(int i=1;i<=n;i++){
		if(bo[i]){
			ir[i]=1;
			for(int j=0;j<e1[i].size();j++){
			 int to=e1[i][j];
			 if(!bo[to])
			   ir[i]=0;	
			}
		}
	}
	if(!bo[s]){
		puts("-1");
		return 0;
	} 
	if(!ir[s]){
		puts("-1");
		return 0;
	} 
	vs[s]=1;
	q1.push(s);
	while(!q1.empty()){
		int no=q1.front();
		q1.pop();
		for(int i=0;i<e1[no].size();i++){
			int to=e1[no][i];
			if(ir[to]&&!vs[to]){
				q1.push(to);
				vs[to]=vs[no]+1;
			}
		}
	}
	if(vs[s]==0){
		puts("-1");
		return 0;
	} 
	printf("%d\n",vs[t]-1);
    return 0;
}

信息

递交者
类型
递交
题目
P1025 寻找道路
题目数据
下载
语言
C++
递交时间
2019-11-12 17:49:50
评测时间
2020-08-10 11:16:02
评测机
分数
100
总耗时
83ms
峰值内存
3.777 MiB