评测机有误?
查看原帖
评测机有误?
450893
yangyuanxi44楼主2021/10/1 22:54

rt,蒟蒻交了下了下代码,然后就A了两个点,#1都WA了,数据下下来是样例,但是样例在蒟蒻本地是对的7,但是数据点信息是:read 8, expected 7.,请问dalao怎么回事,谢谢大佬。

代码附上:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,s,t,cnt;
struct EDGE{
	int to,w,next;
}edge[10000];
int head[10000],dis[10000];
bool vis[10000];
void add(int u,int v,int w){
	cnt++;
	edge[cnt].to=v;
	edge[cnt].w=w;
	edge[cnt].next=head[u];
	head[u]=cnt;
}
struct node{
	int dis,poi;
	bool operator < (const node &x)const{
		x.dis<dis;
	}
};
priority_queue<node> Q;
signed main(){
	cin>>n>>m>>s>>t;
	for(int i=0 ; i<=n ; i++)
	    dis[i]=0x7fffffff,head[i]=-1;
	for(int i=1 ; i<=m ; i++){
		int u,v,w;
		cin>>u>>v>>w;
		add(u,v,w);
		add(v,u,w);
	}
	dis[s]=0;
	node dij;
	dij.dis=0,dij.poi=s;
	Q.push(dij);
	while(!Q.empty()){
		node dij1=Q.top();
		Q.pop();
		int root=dij1.poi;
		if(vis[root]==true)
		   continue;
		vis[root]=true;
		for(int i=head[root] ; i!=-1 ; i=edge[i].next){
			if(dis[edge[i].to]>dis[root]+edge[i].w){
				dis[edge[i].to]=edge[i].w+dis[root];
				//cout<<dis[edge[i].to]<<" "<<edge[i].to<<endl;
			    if(vis[edge[i].to]==false){
			    	node dij2;
			    	dij2.poi=edge[i].to;
			    	dij2.dis=dis[edge[i].to];
			    	Q.push(dij2);
				}
			}
		}
	}
	cout<<dis[t];
	return 0;
}
2021/10/1 22:54
加载中...