为什么编译失败了?本地可以跑
查看原帖
为什么编译失败了?本地可以跑
550898
xjx199楼主2024/8/10 08:28
#include<bits/stdc++.h>
using namespace std;
const int maxn=100001;
int n,m,to[maxn],w[maxn],next[maxn],dis[maxn],sum[maxn],h[maxn],v[maxn];
int d,p,c,f,s,ans;
int cnt;
void add(int u,int v,int c){
	to[++cnt]=v;
	next[cnt]=h[u];
	h[u]=cnt;
	w[cnt]=c;
	return;
}
bool spfa(){
	memset(dis,-0x3f,sizeof dis);
	dis[s]=d;
	v[s]=1;
	ans=d;
	queue<int> q;
	q.push(s);
	while(!q.empty()){
		int u=q.front();
		q.pop();
		v[u]=0;
		for(int i=h[u];~i;i=next[i]){
			int vt=to[i],wt=w[i];
			if(dis[vt]<dis[u]+wt){
				dis[vt]=dis[u]+wt;
				ans=max(ans,dis[vt]);
				if(!v[vt]){
					sum[vt]=sum[u]+1;
					if(sum[vt]>=n) return true;
					v[vt]=1;
					q.push(vt); 
				}
			}
		}
	}
	return false;
}
int main(){
	cin>>d>>p>>c>>f>>s;
	memset(h,-1,sizeof h);
	for(int i=1;i<=p;i++){
		int x,y;
		cin>>x>>y;
		add(x,y,d);
	}
	for(int i=1;i<=f;i++){
		int x,y,z;
		cin>>x>>y>>z;
		add(x,y,d-z);
	}
	if(spfa()) cout<<-1;
	else cout<<ans;
	return 0;
}

2024/8/10 08:28
加载中...