社区讨论
100求条(不用状压)
P1433吃奶酪参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mkm56uas
- 此快照首次捕获于
- 2026/01/20 13:17 4 周前
- 此快照最后确认于
- 2026/01/23 21:30 4 周前
CPP
#include<bits/stdc++.h>
using namespace std;
#define rep(i,a,b) for(int i = a;i <= b;i++)
#define per(i,a,b) for(int i = a;i >= b;i--)
struct cheese
{
double x,y;
void read()
{
cin>>x>>y;
}
}a[20];
int cnt=0;
double dist[20][20];
bool vis[20];
double ans=1e6;
int n;
void dfs(int step,int now,double sum)
{
cnt++;
if(cnt>=10000000)
{
printf("%.2f",ans);
exit(0);
}
if(step>n)
{
if(sum<ans)
ans=sum;
return;
}
rep(i,1,n)
{
if(!vis[i]&&i!=now)
{
if(sum+dist[i][now]>=ans)continue;
vis[i]=1;
dfs(step+1,i,sum+dist[i][now]);
vis[i]=0;
}
}
}
int main()
{
ios::sync_with_stdio(0);
cin>>n;
rep(i,1,n)
a[i].read();
a[0].x=0;
a[0].y=0;
rep(i,0,n)
rep(j,0,n)
dist[i][j]=sqrt((a[i].x-a[j].x)*(a[i].x-a[j].x)+(a[i].y-a[j].y)*(a[i].y-a[j].y));
vis[0]=1;
dfs(1,0,0);
printf("%.2f",ans);
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...