玄学AC
查看原帖
玄学AC
227977
newbeeglass楼主2020/7/30 16:26

我同学的代码,连样例都没过,直接AC?!

#include <bits/stdc++.h>
using namespace std;
int i,j,k,n,m,x,y,z,A,B;
double a[2001][2001],dis[10001],ans,maxx;
bool vis[10001]; 
int main(){
	memset(dis,0,sizeof(dis));
	cin>>n>>m;
	for(i = 1;i <= m;i++){
		cin>>x>>y>>a[x][y];
		a[x][y] = (100 - a[x][y]) / 100;
		a[y][x] = a[x][y];
	}
	cin>>A>>B;
	for(i = 1;i <= n;i++){
		dis[i] = a[A][i];
	} 
	dis[A] = 1;
	vis[A] = 1;
	for(i = 1;i < n;i++){
		maxx = 0;
		for(j = 1;j <= n;j++){
			if(vis[j] == 0 && maxx < dis[j]){
				maxx = dis[j];
				k = j;
			}
		}
		vis[k] = 1;
		if(k == B){
			break;
		}
		for(j = 1;j <= n;j++){
			if(vis[j] == 0 && dis[k] * a[k][j] > dis[j]){
				dis[j] = dis[k] * a[k][j];
			}
		}
		
	}
	ans = 100.0 / (double)dis[B];
	printf("%.8lf",ans);
	return 0;
}
2020/7/30 16:26
加载中...