P1433吃奶酪

题目大意:

要吃n块奶酪,老鼠至少要跑多远?老鼠一开始在 (0,0)(0,0) 点处。

分析:

坐标可能为实数,因此要用double类型存储。然后注意一下最小值和边界条件就行了。

代码:

#include<bits/stdc++.h>
using namespace std;
struct Node{
double x,y;
};
Node f[20];
bool v[20];
int n;
double s=1e9;
double yzx(double ax,double ay,double bx,double by){
return sqrt((ax-bx)(ax-bx)+(ay-by)(ay-by));
}
void dfs(int d,double m,int w){
if(m>=s)return;
if(d>n){
s=m;
return;
}
for(int i=1;i<=n;i++)
if(!v[i]){
v[i]=1;
dfs(d+1,m+yzx(f[w].x,f[w].y,f[i].x,f[i].y),i);
v[i]=0;
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>f[i].x>>f[i].y;
dfs(1,0,0);
printf(“%.2lf\n”,s);
return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值