Bellman-Ford0分求助
查看原帖
Bellman-Ford0分求助
928643
wdnmd9028楼主2024/7/29 13:04
#include<bits/stdc++.h>
using namespace std;
const int MAXN=6005;
struct sb{
	int u,v;
}e[MAXN];
int n,m,s1,s2,x,y,d[MAXN],d1[MAXN],d2[MAXN],ans,t1,t2;
void bf(){
	memset(d,0x3f3f3f,sizeof d);
	memset(d1,0x3f3f3f,sizeof d1);
	memset(d2,0x3f3f3f,sizeof d2);
	d[1]=d1[s1]=d2[s2]=0;
	for(int i=1;i<n;i++) for(int j=1;j<=2*m;j++){
		d[e[j].v]=min(d[e[j].v],d[e[j].u]+1);
		d1[e[j].v]=min(d1[e[j].v],d1[e[j].u]+1);
		d2[e[j].v]=min(d2[e[j].v],d2[e[j].u]+1);
	}
	ans=0x3f3f3f;
	for(int i=1;i<=n;i++) if(d[i]+d1[i]<=t1&&d[i]+d2[i]<=t2) ans=min(ans,d[i]+d1[i]+d2[i]);
	if(ans==0x3f3f3f) cout<<-1;
	else cout<<ans;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>e[i].u>>e[i].v;
		e[i+m]=e[i];
	}
	cin>>s1>>t1>>s2>>t2;
	bf();
    return 0;
}

样例都过了还是0分

2024/7/29 13:04
加载中...