建议加强数据
  • 板块P1576 最小花费
  • 楼主p049fe
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/5/6 22:01
  • 上次更新2024/5/7 12:56:16
查看原帖
建议加强数据
1204301
p049fe楼主2024/5/6 22:01

Bellman O(nm)能过......

#include<bits/stdc++.h>
using namespace std;
const int N=2001,M=200001;
int n,m,a,b;
int u,v;
double w;
struct ed {
	int u,v;
	double w;
} e[M];
int len=0;
double dis[N];
int main() {
	scanf("%d%d",&n,&m);
	for(int i=1; i<=m; i++) {
		scanf("%d%d%lf",&u,&v,&w);
		w=1.0-w*0.01;
		e[++len]= {u,v,w};
		e[++len]= {v,u,w};
	}
	scanf("%d%d",&a,&b);
	for(int i=1; i<=n; i++) {
		dis[i]=9999999.0;
	}
	dis[b]=100.0;
	for(int i=2; i<=n; i++) {
		for(int j=1; j<=len; j++) {
			dis[e[j].v]=min(dis[e[j].v],dis[e[j].u]/e[j].w);
		}
	}
	printf("%.8lf",dis[a]);
	return 0;
}
2024/5/6 22:01
加载中...