玄学RE,求助
  • 板块P1576 最小花费
  • 楼主Azote
  • 当前回复0
  • 已保存回复0
  • 发布时间2020/7/14 16:29
  • 上次更新2023/11/6 23:08:42
查看原帖
玄学RE,求助
122298
Azote楼主2020/7/14 16:29

RT

#include<cstdio>
#include<iostream>
#define inf 20000000
using namespace std;
double map[2005][2005],d[2005],ten[9]={1,10,100,1000,10000,100000,1000000,10000000,100000000};
bool f[2005];
int main(){
	freopen("1576_1.in","r",stdin);
//	freopen("1576-1.out","w",stdout);
	int n,m,tx,ty,t;
	scanf("%d%d",&n,&m);
	for(int i=0;i<m;i++){
		scanf("%d%d",&tx,&ty);
		scanf("%d",&t);
		map[tx-1][ty-1]=1/(1-t*0.01);
	}
	puts("-");
	scanf("%d%d",&tx,&ty);
	t=0;
	for(int i=0;i<n;i++){d[i]=inf;f[i]=false;}
	puts("-");
    d[tx-1]=1;
	puts("-");
    for(int i=0;i<n;i++){
		int p=inf,k;
		for(int j=i;j<n;j++){ 
			if(!f[j]&&d[j]<p){p=d[j];k=j;};
			if(p==inf)break; 
			f[k]=true;
		}
		for(int j=0;j<n;j++)if(!f[j]&&d[k]*map[k][j]<d[j]){d[j]=d[k]*map[k][j];}
    }
	printf("%.8f",d[ty-1]);
	return 0;
}

目前代码输出两个"-",注释掉

for(int j=0;j<n;j++)if(!f[j]&&d[k]*map[k][j]<d[j]){d[j]=d[k]*map[k][j];}

后一个“-”都没了

真就玄学呗

2020/7/14 16:29
加载中...