社区讨论
求调
P1522[USACO2.4] 牛的旅行 Cow Tours参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhjo72vh
- 此快照首次捕获于
- 2025/11/04 05:46 4 个月前
- 此快照最后确认于
- 2025/11/04 05:46 4 个月前
100分一个点过不了
CPP#include<bits/stdc++.h>
using namespace std;
int n,x[206],y[206];
char c;
double d1,d2,mx[206],g[206][206];
int main()
{
int i,j,k;
cin>>n;
for(i=1;i<=n;i++) cin>>x[i]>>y[i];
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i!=j) g[i][j]=1e9;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++){
cin>>c;
if(c=='1')
g[i][j]=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
}
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i!=j&&j!=k&&k!=i)
g[i][j]=min(g[i][j],g[i][k]+g[k][j]);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(g[i][j]!=1e9) mx[i]=max(mx[i],g[i][j]);
for(i=1;i<=n;i++) d1=max(d1,mx[i]);
d2=1e9;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(g[i][j]==1e9)
d2=min(d2,mx[i]+mx[j]+sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j])));
printf("%.6lf",max(d1,d2));
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...