求助WA 10pts
查看原帖
求助WA 10pts
841638
Igunareo楼主2025/1/24 17:59

rt,我真找不到和TJ有什么差别了

#include<bits/stdc++.h>
using namespace std;
int n,m,L[300005],vis[300005],cnt[300005];
double dis[300005],summ[300005];
vector<int>y[300005];
priority_queue<pair<int,int> >q;
void dij(){
	q.push(make_pair(0,n));
	dis[n]=0.0;
	while(!q.empty()){
		int now=q.top().second;
		q.pop();
		if(vis[now])continue;
		vis[now]=1;
		for(int i=0;i<y[now].size();i++)if(!vis[y[now][i]]){
			summ[y[now][i]]+=dis[now];
			cnt[y[now][i]]++;
			dis[y[now][i]]=(summ[y[now][i]]+L[y[now][i]])/cnt[y[now][i]];
			q.push(make_pair(-dis[y[now][i]],y[now][i]));
		}
	}
	return;
}
signed main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=m;i++){
		int a,b;
		scanf("%d%d",&a,&b);
		y[a].push_back(b);
		y[b].push_back(a);
		L[a]++;
		L[b]++;
	}
	dij();
	printf("%.7lf\n",dis[1]);
	return 0;
}

2025/1/24 17:59
加载中...